Die Tasten werden nicht in die Datei geschrieben...
Hier der Code... (hab ich zum größten Teil aus dem SourceArchiv)
Code: Alles auswählen
Enumeration
#Window_0
EndEnumeration
Enumeration
#String_0
#Text_0
#Text_1
#Text_2
#Text_3
#Text_4
EndEnumeration
Global OldCallback, key$, vk$
key$ = Space(255)
Procedure String0_CallBack(hwnd, msg, wparam, lparam)
Select hwnd
Case GadgetID(#String_0)
gadID$ = "#String_0"
If wparam = #VK_TAB ; catch the tab key
GetKeyNameText_(lparam,key$,255)
SetGadgetText(#Text_2, key$)
SetGadgetText(#Text_3, "")
EndIf
EndSelect
Select msg
Case #WM_KEYDOWN ; get the key pressed
GetKeyNameText_(lparam,key$,255)
SetGadgetText(#Text_2, key$)
SetGadgetText(#Text_3, "")
Case #WM_CHAR ; display valid charater
lShift = GetAsyncKeyState_(#VK_LSHIFT)
rShift = GetAsyncKeyState_(#VK_RSHIFT)
lCtrl = GetAsyncKeyState_(#VK_LCONTROL)
rCtrl = GetAsyncKeyState_(#VK_RCONTROL)
;Debug rCtrl
If lShift < 0
vk$ = "Left Shift + "
ElseIf rShift < 0
vk$ = "Right Shift + "
ElseIf lCtrl < 0
vk$ = "Left Control + "
ElseIf rCtrl < 0
vk$ = "Right Control + "
Else
vk$ = ""
EndIf
SetGadgetText(#Text_2, vk$ + key$)
If wparam <> 38 And wparam > 26
SetGadgetText(#Text_3, Chr(wparam))
ElseIf wparam = 38
SetGadgetText(#Text_3, "&" + Chr(wparam))
EndIf
Case #WM_SYSCHAR
lAlt = GetAsyncKeyState_(#VK_LMENU)
rAlt = GetAsyncKeyState_(#VK_RMENU)
If lAlt <> 0
vk$ = "Left Alt + "
ElseIf rAlt <> 0
vk$ = "Right Alt + "
Else
vk$ = ""
EndIf
SetGadgetText(#Text_2, vk$ + key$)
Case #WM_SYSKEYDOWN ; catch the Alt keys
GetKeyNameText_(lparam,key$,255)
SetGadgetText(#Text_2, key$)
lrAlt$ = key$
EndSelect
ProcedureReturn CallWindowProc_(OldCallback, hwnd, msg, wparam, lparam)
EndProcedure
If OpenWindow(#Window_0, 0, 0, 300, 150, "Spy Teacher", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_TitleBar)
If CreateGadgetList(WindowID(#Window_0))
HideWindow(#Window_0, 1)
CreateFile(0,"spyteacherlog.txt")
WriteString(0,key$)
TextGadget(#Text_0, 20, 60, 100, 20, "Gedrückte Taste", #PB_Text_Right)
TextGadget(#Text_1, 20, 90, 100, 20, "", #PB_Text_Right)
TextGadget(#Text_2, 130, 60, 100, 25, "")
TextGadget(#Text_3, 130, 90, 50, 25, "")
TextGadget(#Text_4, 130, 120, 50, 25, "")
StringGadget(#String_0, 20, 5, 260, 20, "")
SetActiveGadget(#String_0)
OldCallback = SetWindowLong_(GadgetID(#String_0), #GWL_WNDPROC, @String0_CallBack())
SetWindowLong_(GadgetID(#String_0), #GWL_WNDPROC, @String0_CallBack())
EndIf
EndIf
Quit = #False
Repeat
event = WaitWindowEvent()
Select event
Case #PB_Event_CloseWindow
Quit = #True
CloseFile(0)
EndSelect
Until Quit
End