Das Notes Forum

Domino 9 und frühere Versionen => Administration & Userprobleme => Thema gestartet von: Gerstengarbe am 18.06.02 - 13:09:53

Titel: Syntax LotusScript "Kill"
Beitrag von: Gerstengarbe 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
Titel: Re: Syntax LotusScript "Kill"
Beitrag von: StanPete 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

Titel: Re: Syntax LotusScript "Kill"
Beitrag von: eknori 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