Autor Thema: Syntax LotusScript "Kill"  (Gelesen 1886 mal)

Offline Gerstengarbe

  • Frischling
  • *
  • Beiträge: 1
  • I love YaBB 1G - SP1!
Syntax LotusScript "Kill"
« am: 18.06.02 - 13:09:53 »
Hallo Forum,
ich muß in LN 5 ein Mail bauen, das nach Klicken eines Buttons ein File auf dem Rechner des Empfängers löscht. Den Button habe ich soweit...der Kill Befehl funktioniert auch, solange ein fixer Pfad vorgegeben wird.
Nur leider habe ich das Problem, das ich ein Cookie löschen muß, der immer gleich heißt, das Verzeichnis bei Win2000 ändert sich aber im Abhängigkeit vom Benutzernamen in Win2000 ???.

Bsp:

c:\documents\Username\datei.txt

Hat irgendjemand eine Idee, wie ich den sich ändernden Foldernamen berücksichtigen kann?

Danke für die Hilfe.

Nils
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline StanPete

  • Aktives Mitglied
  • ***
  • Beiträge: 116
Re: Syntax LotusScript "Kill"
« Antwort #1 am: 18.06.02 - 13:17:15 »
hi

eine direkte lösung kann ich dir leider nicht bieten , aber ein Workaround vielleicht:

für doch einfach einen DOS-befehl aus der den Usernamen in einer Datei speichert die du dann mit LotusScript ausliest.

Bsp. (unter Windows NT funzt das)

echo %username% > c:\Username.txt


Die Datei öffnest du mit Lotus Script und liest den Namen dann dort aus.

sollte funktionieren.  :) :)

Gruß
Achim

« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Syntax LotusScript "Kill"
« Antwort #2 am: 18.06.02 - 13:37:07 »
Hi,

ich denke mal "c:\documents\" ist konstant, ebenso wie der Dateiname. Was dir also noch fehlt, ist der Name des momentan angemeldeten Users.

den kannst du mit ein paar WindowsAPIs leicht ermitteln

In die Declaration deines Buttons kopierst du folgende Zeilen:

Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (Byval lpBuffer As String, nSize As Long) As Long
Declare Function GetLastError Lib "kernel32" () As Long
Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" (Byval dwFlags As Long, lpSource As Any, Byval dwMessageId As Long, Byval dwLanguageId As Long, Byval lpBuffer As String, Byval nSize As Long, Arguments As Long) As Long

die folgende Funktion ermittelt dann den (Windows)Usernamen:

Function LNGetUserName() As String
     Dim RetUserName As Long
     Dim lpUserName As String
     Dim nSize As Long
     Dim RetLastError As Long
     Dim RetVal As Long
     Dim lpMessageBuffer As String
     Dim varia As String
     lpUserName = Space(255)
     nSize = Len(lpUserName)
     RetUserName = GetUserName(lpUserName, nSize)
     If RetUserName <> 0 Then 'UserName ausgeben.
           varia = Left(lpUserName, nSize - 1)
     Else 'Username nicht verfügbar.
           RetLastError = GetLastError()
           lpMessageBuffer = Space(255)
           nSize = Len(lpMessageBuffer)
           RetVal = FormatMessage(0, 0, RetLastError, 0, lpMessageBuffer, nSize, 0)
           If RetVal <> 0 Then
                 varia = "Fehler " & RetLastError & ": " & lpMessageBuffer
           Else
                 varia = "Fehler " & RetLastError & ": kein angemeldeter Benutzer"
           End If
     End If
     
     LNGetUserName= Trim(varia)
End Function

Jetzt brauchst du den String nur noch zusammenzusetzten und hast deinen Pfad.

eknori
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz