Die einzige möglichkeit die ich sehe wäre über externe Aufrufe
in der Maske in den Deklarationen
Declare Function GetKeyboardState Lib "user32.dll" (Byval vKey As Variant) As Boolean
Const VK_SHIFT = 16
in Exiting Event des Feldes:
Dim ws As New notesuiworkspace
Dim Keys(255) As Byte
GetKeyboardState(Keys)
If keys(VK_SHIFT)>127 Then
ws.CurrentDocument.GotoField("<FELDNAME>")
End If
Es funktioniert zwar, aber eigentlich mag ich solche Sachen nicht so besonders. Es schränkt die Verwendbarkeit auf Windowsclients ein.
Welche Codes für welche Tasten findest du hier http://msdn.microsoft.com/en-us/library/ms645540(VS.85).aspx (http://msdn.microsoft.com/en-us/library/ms645540(VS.85).aspx)
Cool,
Danke Grischu,
mit Shift Funktioniert das jetz auch.
Leider Brauche ich aber eine andere Taste. VK_F2
Const VK_F2 = 16
Dim ws As New notesuiworkspace
Dim Keys(255) As Byte
GetKeyboardState(Keys)
If keys(VK_F2)>113 Then
ws.CurrentDocument.GotoField("CalcLeistungsNr")
End If
Ich habe auch 0x71 von Binär in Dezimal umgerechnet aber das brachte auch nichts.
Wo liegt der Fehler
so
Const VK_F2 = 113
Dim ws As New notesuiworkspace
Dim Keys(255) As Byte
GetKeyboardState(Keys)
If keys(VK_F2)>127 Then
ws.CurrentDocument.GotoField("CalcLeistungsNr")
End If
wenn die Taste gedrückt ist wird Bit 8 gesetzt welches denn Wert 128 hat
/edit
"If keys(VK_F2)>128 Then" war falsch von mir muss "If keys(VK_F2)>127 Then" sein !