Seite 1 von 3

Tasten drücke speichern

Verfasst: 24.05.2006 20:53
von Joel
Hi,
Wie kann man eigentlich Tastendrücke speichern.
Zb. ein Benutzer drückt in meinem Programm auf einen bestimmten Modus und dann werden alle tasten die gedrückt wurden gespeichertund später auf wunsch angezeigt welche gedrückt wurden.

Verfasst: 24.05.2006 22:00
von roherter
Solange es nur in deinem Programm sein soll gehts über GetAsyncKeyState_(vkey). :)

Edit:Hoffe es ist nicht zu lang

Code: Alles auswählen

VK_LBUTTON (01)
Left mouse button

VK_RBUTTON (02)
Right mouse button

VK_CANCEL (03)
Control-break processing

VK_MBUTTON (04)
Middle mouse button (three-button mouse)

VK_XBUTTON1 (05)
Windows 2000/XP: X1 mouse button

VK_XBUTTON2 (06)
Windows 2000/XP: X2 mouse button

- (07)
Undefined

VK_BACK (08)
BACKSPACE key

VK_TAB (09)
TAB key

- (0A-0B)
Reserved

VK_CLEAR (0C)
CLEAR key

VK_RETURN (0D)
ENTER key

- (0E-0F)
Undefined

VK_SHIFT (10)
SHIFT key

VK_CONTROL (11)
CTRL key

VK_MENU (12)
ALT key

VK_PAUSE (13)
PAUSE key

VK_CAPITAL (14)
CAPS LOCK key

VK_KANA (15)
Input Method Editor (IME) Kana mode

VK_HANGUEL (15)
IME Hanguel mode (maintained for compatibility; use VK_HANGUL)

VK_HANGUL (15)
IME Hangul mode

- (16)
Undefined

VK_JUNJA (17)
IME Junja mode

VK_FINAL (18)
IME final mode

VK_HANJA (19)
IME Hanja mode

VK_KANJI (19)
IME Kanji mode

- (1A)
Undefined

VK_ESCAPE (1B)
ESC key

VK_CONVERT (1C)
IME convert

VK_NONCONVERT (1D)
IME nonconvert

VK_ACCEPT (1E)
IME accept

VK_MODECHANGE (1F)
IME mode change request

VK_SPACE (20)
SPACEBAR

VK_PRIOR (21)
PAGE UP key

VK_NEXT (22)
PAGE DOWN key

VK_END (23)
END key

VK_HOME (24)
HOME key

VK_LEFT (25)
LEFT ARROW key

VK_UP (26)
UP ARROW key

VK_RIGHT (27)
RIGHT ARROW key

VK_DOWN (28)
DOWN ARROW key

VK_SELECT (29)
SELECT key

VK_PRINT (2A)
PRINT key

VK_EXECUTE (2B)
EXECUTE key

VK_SNAPSHOT (2C)
PRINT SCREEN key

VK_INSERT (2D)
INS key

VK_DELETE (2E)
DEL key

VK_HELP (2F)
HELP key

 (30)
0 key

 (31)
1 key

 (32)
2 key

 (33)
3 key

 (34)
4 key

 (35)
5 key

 (36)
6 key

 (37)
7 key

 (38)
8 key

 (39)
9 key

- (3A-40)
Undefined

 (41)
A key

 (42)
B key

 (43)
C key

 (44)
D key

 (45)
E key

 (46)
F key

 (47)
G key

 (48)
H key

 (49)
I key

 (4A)
J key

 (4B)
K key

 (4C)
L key

 (4D)
M key

 (4E)
N key

 (4F)
O key

 (50)
P key

 (51)
Q key

 (52)
R key

 (53)
S key

 (54)
T key

 (55)
U key

 (56)
V key

 (57)
W key

 (58)
X key

 (59)
Y key

 (5A)
Z key

VK_LWIN (5B)
Left Windows key (Microsoft Natural keyboard) 

VK_RWIN (5C)
Right Windows key (Natural keyboard)

VK_APPS (5D)
Applications key (Natural keyboard)

- (5E)
Reserved

VK_SLEEP (5F)
Computer Sleep key

VK_NUMPAD0 (60)
Numeric keypad 0 key

VK_NUMPAD1 (61)
Numeric keypad 1 key

VK_NUMPAD2 (62)
Numeric keypad 2 key

VK_NUMPAD3 (63)
Numeric keypad 3 key

VK_NUMPAD4 (64)
Numeric keypad 4 key

VK_NUMPAD5 (65)
Numeric keypad 5 key

VK_NUMPAD6 (66)
Numeric keypad 6 key

VK_NUMPAD7 (67)
Numeric keypad 7 key

VK_NUMPAD8 (68)
Numeric keypad 8 key

VK_NUMPAD9 (69)
Numeric keypad 9 key

VK_MULTIPLY (6A)
Multiply key

VK_ADD (6B)
Add key

VK_SEPARATOR (6C)
Separator key

VK_SUBTRACT (6D)
Subtract key

VK_DECIMAL (6E)
Decimal key

VK_DIVIDE (6F)
Divide key

VK_F1 (70)
F1 key

VK_F2 (71)
F2 key

VK_F3 (72)
F3 key

VK_F4 (73)
F4 key

VK_F5 (74)
F5 key

VK_F6 (75)
F6 key

VK_F7 (76)
F7 key

VK_F8 (77)
F8 key

VK_F9 (78)
F9 key

VK_F10 (79)
F10 key

VK_F11 (7A)
F11 key

VK_F12 (7B)
F12 key

VK_F13 (7C)
F13 key

VK_F14 (7D)
F14 key

VK_F15 (7E)
F15 key

VK_F16 (7F)
F16 key

VK_F17 (80H)
F17 key

VK_F18 (81H)
F18 key

VK_F19 (82H)
F19 key

VK_F20 (83H)
F20 key

VK_F21 (84H)
F21 key

VK_F22 (85H)
F22 key

VK_F23 (86H)
F23 key

VK_F24 (87H)
F24 key

- (88-8F)
Unassigned

VK_NUMLOCK (90)
NUM LOCK key

VK_SCROLL (91)
SCROLL LOCK key

 (92-96)
OEM specific

- (97-9F)
Unassigned

VK_LSHIFT (A0)
Left SHIFT key

VK_RSHIFT (A1)
Right SHIFT key

VK_LCONTROL (A2)
Left CONTROL key

VK_RCONTROL (A3)
Right CONTROL key

VK_LMENU (A4)
Left MENU key

VK_RMENU (A5)
Right MENU key

VK_BROWSER_BACK (A6)
Windows 2000/XP: Browser Back key

VK_BROWSER_FORWARD (A7)
Windows 2000/XP: Browser Forward key

VK_BROWSER_REFRESH (A8)
Windows 2000/XP: Browser Refresh key

VK_BROWSER_STOP (A9)
Windows 2000/XP: Browser Stop key

VK_BROWSER_SEARCH (AA)
Windows 2000/XP: Browser Search key 

VK_BROWSER_FAVORITES (AB)
Windows 2000/XP: Browser Favorites key

VK_BROWSER_HOME (AC)
Windows 2000/XP: Browser Start and Home key

VK_VOLUME_MUTE (AD)
Windows 2000/XP: Volume Mute key

VK_VOLUME_DOWN (AE)
Windows 2000/XP: Volume Down key

VK_VOLUME_UP (AF)
Windows 2000/XP: Volume Up key

VK_MEDIA_NEXT_TRACK (B0)
Windows 2000/XP: Next Track key

VK_MEDIA_PREV_TRACK (B1)
Windows 2000/XP: Previous Track key

VK_MEDIA_STOP (B2)
Windows 2000/XP: Stop Media key

VK_MEDIA_PLAY_PAUSE (B3)
Windows 2000/XP: Play/Pause Media key

VK_LAUNCH_MAIL (B4)
Windows 2000/XP: Start Mail key

VK_LAUNCH_MEDIA_SELECT (B5)
Windows 2000/XP: Select Media key

VK_LAUNCH_APP1 (B6)
Windows 2000/XP: Start Application 1 key

VK_LAUNCH_APP2 (B7)
Windows 2000/XP: Start Application 2 key

- (B8-B9)
Reserved

VK_OEM_1 (BA)
Used for miscellaneous characters; it can vary by keyboard.
Windows 2000/XP: For the US standard keyboard, the ';:' key 


VK_OEM_PLUS (BB)
Windows 2000/XP: For any country/region, the '+' key

VK_OEM_COMMA (BC)
Windows 2000/XP: For any country/region, the ',' key

VK_OEM_MINUS (BD)
Windows 2000/XP: For any country/region, the '-' key

VK_OEM_PERIOD (BE)
Windows 2000/XP: For any country/region, the '.' key

VK_OEM_2 (BF)
Used for miscellaneous characters; it can vary by keyboard.
Windows 2000/XP: For the US standard keyboard, the '/?' key 


VK_OEM_3 (C0)
Used for miscellaneous characters; it can vary by keyboard. 
Windows 2000/XP: For the US standard keyboard, the '`~' key 


- (C1-D7)
Reserved

- (D8-DA)
Unassigned

VK_OEM_4 (DB)
Used for miscellaneous characters; it can vary by keyboard. 
Windows 2000/XP: For the US standard keyboard, the '[{' key


VK_OEM_5 (DC)
Used for miscellaneous characters; it can vary by keyboard. 
Windows 2000/XP: For the US standard keyboard, the '\|' key


VK_OEM_6 (DD)
Used for miscellaneous characters; it can vary by keyboard. 
Windows 2000/XP: For the US standard keyboard, the ']}' key


VK_OEM_7 (DE)
Used for miscellaneous characters; it can vary by keyboard. 
Windows 2000/XP: For the US standard keyboard, the 'single-quote/double-quote' key


VK_OEM_8 (DF)
Used for miscellaneous characters; it can vary by keyboard.

- (E0)
Reserved

 (E1)
OEM specific

VK_OEM_102 (E2)
Windows 2000/XP: Either the angle bracket key or the backslash key on the RT 102-key keyboard

 (E3-E4)
OEM specific

VK_PROCESSKEY (E5)
Windows 95/98/Me, Windows NT 4.0, Windows 2000/XP: IME PROCESS key

 (E6)
OEM specific

VK_PACKET (E7)
Windows 2000/XP: Used to pass Unicode characters as if they were keystrokes. The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information, see Remark in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP

- (E8)
Unassigned

 (E9-F5)
OEM specific

VK_ATTN (F6)
Attn key

VK_CRSEL (F7)
CrSel key

VK_EXSEL (F8)
ExSel key

VK_EREOF (F9)
Erase EOF key

VK_PLAY (FA)
Play key

VK_ZOOM (FB)
Zoom key

VK_NONAME (FC)
Reserved 

VK_PA1 (FD)
PA1 key

VK_OEM_CLEAR (FE)
Clear key

Verfasst: 24.05.2006 22:22
von vonTurnundTaxis
Falls du dich bei deinem Programm auf das Betriebssystem Windows festlegen willst, steht alles, was du wissen musst hier.
Es werden im verlinkten Thema auch Wege aufgezeigt, die wesentlich besser sind als der von roherter.

Verfasst: 24.05.2006 22:24
von roherter
Er hat gefragt ich habe geantwortet welcher weg der bessere ist sollte er selber entscheiden nur dies ist der einfachste und leichteste. :freak:

Verfasst: 24.05.2006 22:28
von vonTurnundTaxis
roherter hat geschrieben:einfachste und leichteste. :freak:
Für das Betriebssystem Windows:

Code: Alles auswählen

If OpenWindow(#PB_Any, 0, 0, 100, 100, #PB_Window_ScreenCentered, "Eingabe-Test") 
 
 Repeat 
   If WaitWindowEvent() =  #WM_KEYDOWN 
     If GetAsyncKeyState_(#VK_SHIFT) 
       antwort$ + Chr(EventwParam()) 
     Else 
       antwort$ + LCase(Chr(EventwParam())) 
     EndIf 
   EndIf 
   Debug antwort$ 
 Until GetAsyncKeyState_(#VK_ESCAPE) 
 
 EndIf 
Sieht einfacher aus :D

Verfasst: 24.05.2006 22:30
von roherter
Jo erheblich einfacher :D

Verfasst: 24.05.2006 22:47
von AND51
Warum wird beim letzten Code "t" beim Drücken von F5 wiedergegeben :freak:

Diese Proc gib die gedrückte Taste als #VK_* Konstante zurück:

Code: Alles auswählen

Procedure Key()
   For n=0 to 255
      If GetAsyncKeyState_(n)
         ProcedureReturn n
      EndIf
   Next
EndProcedure
Mann kann dann zum Beispiel so abfragen, ob A gedrückt wurde:

Code: Alles auswählen

If Key() = #VK_A
    Debug "A gedrückt"
EndIF
Ansonsten kannst du in ein Array oder eine Datei jeweils den Wert von Key() speichern, weil du das ja später wieder abspielen möchtest und dazu vermutlich die von meiner Prozedur generierten VK_ Werte brauchst!

Verfasst: 24.05.2006 23:00
von vonTurnundTaxis
AND51 hat geschrieben:...
Das hatte roherter doch vorgeschlagen.

Verfasst: 24.05.2006 23:15
von Joel
So und dann wollte ich die tasten speichern. Das auslesen der datei kommt später.

So ich hab ein Beispiel so verändret dass die tasten drücke in einer txt Datei gespeichert werden.

Nur igrentwie wird dass ein bisschen Komisch gespeichert und ich weiß nicht wie ich die einzellnen Buchstaben wieder auslesen soll von den vielen Buchstaben.




Code: Alles auswählen

AllocateMemory(1000)
CreateFile(3, "C:\jo.txt")



Structure keys 
  Wert.l 
  Name.s 
EndStructure 
NewList Keys.keys() 
AddElement(Keys()) 
Keys()\Wert = #VK_BACK 
Keys()\Name = "VK_BACK" 
AddElement(Keys()) 
Keys()\Wert = #VK_TAB 
Keys()\Name = "VK_TAB" 
AddElement(Keys()) 
Keys()\Wert = #VK_CLEAR 
Keys()\Name = "VK_CLEAR" 
AddElement(Keys()) 
Keys()\Wert = #VK_RETURN 
Keys()\Name = "VK_RETURN" 
AddElement(Keys()) 
Keys()\Wert = #VK_SHIFT 
Keys()\Name = "VK_SHIFT" 
AddElement(Keys()) 
Keys()\Wert = #VK_CONTROL 
Keys()\Name = "VK_CONTROL" 
AddElement(Keys()) 
Keys()\Wert = #VK_MENU 
Keys()\Name = "VK_MENU" 
AddElement(Keys()) 
Keys()\Wert = #VK_PAUSE 
Keys()\Name = "VK_PAUSE" 
AddElement(Keys()) 
Keys()\Wert = #VK_CAPITAL 
Keys()\Name = "VK_CAPITAL" 
AddElement(Keys()) 
Keys()\Wert = #VK_ESCAPE 
Keys()\Name = "VK_ESCAPE" 
AddElement(Keys()) 
Keys()\Wert = #VK_SPACE 
Keys()\Name = "VK_SPACE" 
AddElement(Keys()) 
Keys()\Wert = #VK_PRIOR 
Keys()\Name = "VK_PRIOR" 
AddElement(Keys()) 
Keys()\Wert = #VK_NEXT 
Keys()\Name = "VK_NEXT" 
AddElement(Keys()) 
Keys()\Wert = #VK_END 
Keys()\Name = "VK_END" 
AddElement(Keys()) 
Keys()\Wert = #VK_HOME 
Keys()\Name = "VK_HOME" 
AddElement(Keys()) 
Keys()\Wert = #VK_LEFT 
Keys()\Name = "VK_LEFT" 
AddElement(Keys()) 
Keys()\Wert = #VK_UP 
Keys()\Name = "VK_UP" 
AddElement(Keys()) 
Keys()\Wert = #VK_RIGHT 
Keys()\Name = "VK_RIGHT" 
AddElement(Keys()) 
Keys()\Wert = #VK_DOWN 
Keys()\Name = "VK_DOWN" 
AddElement(Keys()) 
Keys()\Wert = #VK_SELECT 
Keys()\Name = "VK_SELECT" 
AddElement(Keys()) 
Keys()\Wert = #VK_PRINT 
Keys()\Name = "VK_PRINT" 
AddElement(Keys()) 
Keys()\Wert = #VK_EXECUTE 
Keys()\Name = "VK_EXECUTE" 
AddElement(Keys()) 
Keys()\Wert = #VK_SNAPSHOT 
Keys()\Name = "VK_SNAPSHOT" 
AddElement(Keys()) 
Keys()\Wert = #VK_INSERT 
Keys()\Name = "VK_INSERT" 
AddElement(Keys()) 
Keys()\Wert = #VK_DELETE 
Keys()\Name = "VK_DELETE" 
AddElement(Keys()) 
Keys()\Wert = #VK_HELP 
Keys()\Name = "VK_HELP" 
AddElement(Keys()) 
Keys()\Wert = #VK_0 
Keys()\Name = "VK_0" 
AddElement(Keys()) 
Keys()\Wert = #VK_1 
Keys()\Name = "VK_1" 
AddElement(Keys()) 
Keys()\Wert = #VK_2 
Keys()\Name = "VK_2" 
AddElement(Keys()) 
Keys()\Wert = #VK_3 
Keys()\Name = "VK_3" 
AddElement(Keys()) 
Keys()\Wert = #VK_4 
Keys()\Name = "VK_4" 
AddElement(Keys()) 
Keys()\Wert = #VK_5 
Keys()\Name = "VK_5" 
AddElement(Keys()) 
Keys()\Wert = #VK_6 
Keys()\Name = "VK_6" 
AddElement(Keys()) 
Keys()\Wert = #VK_7 
Keys()\Name = "VK_7" 
AddElement(Keys()) 
Keys()\Wert = #VK_8 
Keys()\Name = "VK_8" 
AddElement(Keys()) 
Keys()\Wert = #VK_9 
Keys()\Name = "VK_9" 
AddElement(Keys()) 
Keys()\Wert = #VK_A 
Keys()\Name = "VK_A" 
AddElement(Keys()) 
Keys()\Wert = #VK_B 
Keys()\Name = "VK_B" 
AddElement(Keys()) 
Keys()\Wert = #VK_C 
Keys()\Name = "VK_C" 
AddElement(Keys()) 
Keys()\Wert = #VK_D 
Keys()\Name = "VK_D" 
AddElement(Keys()) 
Keys()\Wert = #VK_E 
Keys()\Name = "VK_E" 
AddElement(Keys()) 
Keys()\Wert = #VK_F 
Keys()\Name = "VK_F" 
AddElement(Keys()) 
Keys()\Wert = #VK_G 
Keys()\Name = "VK_G" 
AddElement(Keys()) 
Keys()\Wert = #VK_H 
Keys()\Name = "VK_H" 
AddElement(Keys()) 
Keys()\Wert = #VK_I 
Keys()\Name = "VK_I" 
AddElement(Keys()) 
Keys()\Wert = #VK_J 
Keys()\Name = "VK_J" 
AddElement(Keys()) 
Keys()\Wert = #VK_K 
Keys()\Name = "VK_K" 
AddElement(Keys()) 
Keys()\Wert = #VK_L 
Keys()\Name = "VK_L" 
AddElement(Keys()) 
Keys()\Wert = #VK_M 
Keys()\Name = "VK_M" 
AddElement(Keys()) 
Keys()\Wert = #VK_N 
Keys()\Name = "VK_N" 
AddElement(Keys()) 
Keys()\Wert = #VK_O 
Keys()\Name = "VK_O" 
AddElement(Keys()) 
Keys()\Wert = #VK_P 
Keys()\Name = "VK_P" 
AddElement(Keys()) 
Keys()\Wert = #VK_Q 
Keys()\Name = "VK_Q" 
AddElement(Keys()) 
Keys()\Wert = #VK_R 
Keys()\Name = "VK_R" 
AddElement(Keys()) 
Keys()\Wert = #VK_S 
Keys()\Name = "VK_S" 
AddElement(Keys()) 
Keys()\Wert = #VK_T 
Keys()\Name = "VK_T" 
AddElement(Keys()) 
Keys()\Wert = #VK_U 
Keys()\Name = "VK_U" 
AddElement(Keys()) 
Keys()\Wert = #VK_V 
Keys()\Name = "VK_V" 
AddElement(Keys()) 
Keys()\Wert = #VK_W 
Keys()\Name = "VK_W" 
AddElement(Keys()) 
Keys()\Wert = #VK_X 
Keys()\Name = "VK_X" 
AddElement(Keys()) 
Keys()\Wert = #VK_Y 
Keys()\Name = "VK_Y" 
AddElement(Keys()) 
Keys()\Wert = #VK_Z 
Keys()\Name = "VK_Z" 
AddElement(Keys()) 
Keys()\Wert = #VK_NUMPAD0 
Keys()\Name = "VK_NUMPAD0" 
AddElement(Keys()) 
Keys()\Wert = #VK_NUMPAD1 
Keys()\Name = "VK_NUMPAD1" 
AddElement(Keys()) 
Keys()\Wert = #VK_NUMPAD2 
Keys()\Name = "VK_NUMPAD2" 
AddElement(Keys()) 
Keys()\Wert = #VK_NUMPAD3 
Keys()\Name = "VK_NUMPAD3" 
AddElement(Keys()) 
Keys()\Wert = #VK_NUMPAD4 
Keys()\Name = "VK_NUMPAD4" 
AddElement(Keys()) 
Keys()\Wert = #VK_NUMPAD5 
Keys()\Name = "VK_NUMPAD5" 
AddElement(Keys()) 
Keys()\Wert = #VK_NUMPAD6 
Keys()\Name = "VK_NUMPAD6" 
AddElement(Keys()) 
Keys()\Wert = #VK_NUMPAD7 
Keys()\Name = "VK_NUMPAD7" 
AddElement(Keys()) 
Keys()\Wert = #VK_NUMPAD8 
Keys()\Name = "VK_NUMPAD8" 
AddElement(Keys()) 
Keys()\Wert = #VK_NUMPAD9 
Keys()\Name = "VK_NUMPAD9" 
AddElement(Keys()) 
Keys()\Wert = #VK_MULTIPLY 
Keys()\Name = "VK_MULTIPLY" 
AddElement(Keys()) 
Keys()\Wert = #VK_ADD 
Keys()\Name = "VK_ADD" 
AddElement(Keys()) 
Keys()\Wert = #VK_DECIMAL 
Keys()\Name = "VK_DECIMAL" 
AddElement(Keys()) 
Keys()\Wert = #VK_DIVIDE 
Keys()\Name = "VK_DIVIDE" 
AddElement(Keys()) 
Keys()\Wert = #VK_F1 
Keys()\Name = "VK_F1" 
AddElement(Keys()) 
Keys()\Wert = #VK_F2 
Keys()\Name = "VK_F2" 
AddElement(Keys()) 
Keys()\Wert = #VK_F3 
Keys()\Name = "VK_F3" 
AddElement(Keys()) 
Keys()\Wert = #VK_F4 
Keys()\Name = "VK_F4" 
AddElement(Keys()) 
Keys()\Wert = #VK_F5 
Keys()\Name = "VK_F5" 
AddElement(Keys()) 
Keys()\Wert = #VK_F6 
Keys()\Name = "VK_F6" 
AddElement(Keys()) 
Keys()\Wert = #VK_F7 
Keys()\Name = "VK_F7" 
AddElement(Keys()) 
Keys()\Wert = #VK_F8 
Keys()\Name = "VK_F8" 
AddElement(Keys()) 
Keys()\Wert = #VK_F9 
Keys()\Name = "VK_F9" 
AddElement(Keys()) 
Keys()\Wert = #VK_F10 
Keys()\Name = "VK_F10" 
AddElement(Keys()) 
Keys()\Wert = #VK_F11 
Keys()\Name = "VK_F11" 
AddElement(Keys()) 
Keys()\Wert = #VK_F12 
Keys()\Name = "VK_F12" 
AddElement(Keys()) 
Keys()\Wert = #VK_F13 
Keys()\Name = "VK_F13" 
AddElement(Keys()) 
Keys()\Wert = #VK_F14 
Keys()\Name = "VK_F14" 
AddElement(Keys()) 
Keys()\Wert = #VK_F15 
Keys()\Name = "VK_F15" 
AddElement(Keys()) 
Keys()\Wert = #VK_F16 
Keys()\Name = "VK_F16" 
AddElement(Keys()) 
Keys()\Wert = #VK_F17 
Keys()\Name = "VK_F17" 
AddElement(Keys()) 
Keys()\Wert = #VK_F18 
Keys()\Name = "VK_F18" 
AddElement(Keys()) 
Keys()\Wert = #VK_F19 
Keys()\Name = "VK_F19" 
AddElement(Keys()) 
Keys()\Wert = #VK_F20 
Keys()\Name = "VK_F20" 
AddElement(Keys()) 
Keys()\Wert = #VK_F21 
Keys()\Name = "VK_F21" 
AddElement(Keys()) 
Keys()\Wert = #VK_F22 
Keys()\Name = "VK_F22" 
AddElement(Keys()) 
Keys()\Wert = #VK_F23 
Keys()\Name = "VK_F23" 
AddElement(Keys()) 
Keys()\Wert = #VK_F24 
Keys()\Name = "VK_F24" 
AddElement(Keys()) 
Keys()\Wert = #VK_NUMLOCK 
Keys()\Name = "VK_NUMLOCK" 

OpenWindow(0, 0, 0, 200, 200, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "Test") 

Repeat 
  ereignis.l = WaitWindowEvent() 
  
  If ereignis.l = #WM_KEYDOWN 
    If EventlParam() & %01000000000000000000000000000000 
      Debug Str(EventwParam()) + " ..." 
    Else 
      ForEach Keys() 
        If EventwParam() = Keys()\Wert 
           WriteData("Keys()", 80)
        EndIf 
      Next 
    EndIf 
    
  ElseIf ereignis.l = #WM_KEYUP 
    ForEach Keys() 
        If EventwParam() = Keys()\Wert 
           WriteData("Keys()", 80)
        EndIf 
      Next 
  EndIf 

Until ereignis.l = #PB_Event_CloseWindow 

Verfasst: 24.05.2006 23:59
von AND51
vonTurnundTaxis hat geschrieben:
AND51 hat geschrieben:...
Das hatte roherter doch vorgeschlagen.
Nicht ganz: Roherter meinte, man solle manuell, jede VK-Konstante mit getAsyncKeyState_() prüfen, das habe ich leicht abgewandelt in eine Procedure gepackt. Fertig. Was ist denn daran so schlimm?

Außerdem hat noch niemand auf meine Frage geantwortet, warum bei dem einen Code da oben t angezeigt wird, obwohl ich F5 drücke...