Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: ArcTan am 02.09.05 - 13:50:53
-
Hallo,
vielleicht hat jemand eine Idee zu folgendem Problem:
Ich speichere Kennwörter in einer Datenbank und möchte das Kennwort, das in einem Dokument in einem versteckten (und verschlüsselten) Feld abgelegt ist, nach Klicken auf einen Button nur maximal 10 Sekunden lang anzeigen lassen.
Eine Standard-Messagebox bietet diese Funktionalität ja nicht. Also habe ich ein bisschen mit Masken und dem Notes Timer 'rumprobiert:
In den Declarations der Maske habe ich hinterlegt:
Dim elapsedTime As Integer
Dim elapsedTimer As NotesTimer
Const ANZEIGEZEIT=10
Dim thisdoc As NotesUIDocument
Dann gibts noch den Timer Handler:
Sub elapsedTimerHandler(S As NotesTimer)
Dim workspace As New NotesUIWorkspace
Set thisdoc = workspace.CurrentDocument
elapsedTime=elapsedTime+1
Call uidoc.fieldsettext("zeit","Fenster schließt automatisch in " + Str(ANZEIGEZEIT-elapsedTime) + " Sek.")
Set S=Nothing
thisdoc.close
End Sub
Leider schließt sich jedoch die Form nicht von selbst...
Wäre dankbar für einen Hinweis. Vielleicht gibt es ja noch eine bessere Möglichkeit?
Grüße
ArcTan
-
Hi ArcTan,
du könntest es mit sleep versuchen....
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUidocument
Dim doc As NotesDocument
Set uidoc = ws.Currentdocument
Set doc = uidoc.Document
Call uidoc.FieldSetText("PWAnzeige",doc.PW(0) + " (Bald ist es wieder weg.)")
Sleep(10)
Call uidoc.FieldSetText("PWAnzeige","")
Der Code in ein Button, daneben das Feld PWAnzeige (Berechnet auf sich selber)
HTH
-
Na, besser gut kopiert als schlecht Programmiert? ;D
Nur mal so als Hinweis: Wenn Du thisDoc as Ui deklarierst und das Frontend dann als Uidoc und nicht als thisdoc ansprichst, dann läuft Dein Code nicht besonders gut.
Wenn Du nicht darauf angewiesen bist, das das Dokument für die 10 Sekunden bearbeitbar bleibt, dann versuchs doch mit der Sleep funktion:
Sub Click(Source As Button)
Dim ws As NotesUiWorkspace
Dim uidoc As NotesUiDocument
Dim intSeconds As Integer
Set ws = New NotesUiWorkspace
Set uidoc = ws.CurrentDocument
intSeconds = 10
Do While Not intSeconds = 0
Call uidoc.FieldSetText("Zeit", "Noch " + Cstr(intSeconds) + " Sekunden bis das Dokument geschlossen wird...")
Call uidoc.Refresh
intSeconds = intSeconds - 1
Sleep 1
Loop
Call uidoc.Save
Call uidoc.Close
End Sub
Gruß
Willi
-
Super, klappt. Vielen Dank für Eure Tipps.
(Ok, Willi, mit dem uidoc hast Du natürlich recht...)
Gruß
ArcTan