Seite 1 von 1

Tasten abfragen - Problem

Verfasst: 05.02.2008 13:33
von PMTheQuick
Hi,

ich habe ein kleines Problem... Folgendes funktioniert irgendwie einfach nicht...

Code: Alles auswählen

If GetAsyncKeyState_(#VK_S) = -32767 And GetAsyncKeyState_(#VK_K) = -32767
;...
EndIf
Das geht ja schon nicht. Beachtet: Ich will gar nicht S & K abfragen, sondern ich würde lieber Ctrl + Alt + P + 2 abfragen (oder halt Alt Gr + P + 2)... Wie kann ich diese Tastenkombination abfragen?

Gruss
PMTheQuick ;)

Verfasst: 05.02.2008 14:01
von RSBasic
@PMTheQuick
Wieso machst du das nicht mit AddKeyboardShortcut()?

Oder so:

Code: Alles auswählen

If GetAsyncKeyState_(#VK_LCONTROL) And GetAsyncKeyState_(#VK_K)
  Debug "wurde gedrückt"
EndIf

Verfasst: 05.02.2008 14:02
von PMTheQuick
Weil ich kein Windows-Fenster öffne. Nur Konsole. Und wie gesagt, ich möchte Ctrl + Alt + P + 2 (bzw. Alt Gr + P + 2)...

Gruss
PMTheQuick ;)

Verfasst: 05.02.2008 14:05
von RSBasic

Code: Alles auswählen

Procedure Taste()
  Repeat
    If GetAsyncKeyState_(#VK_LCONTROL) And GetAsyncKeyState_(#VK_K) 
      Debug "wurde gedrückt" 
    EndIf
    Delay(10)
  ForEver
EndProcedure

OpenConsole()
  CreateThread(@Taste(),0)
  Input()
CloseConsole()

Verfasst: 05.02.2008 14:07
von PMTheQuick
Ich möchte GENAU die Kombination "CTRL + ALT + P + 2"! ;)

Gruss
PMTheQuick ;)

Verfasst: 05.02.2008 14:13
von RSBasic
@PMTheQuick
Wieso STRG ALT P und 2 ?
Das geht doch eigentlich garnicht.
Oder willst du:
STRG ALT P
STRG ALT 2
?

Verfasst: 05.02.2008 14:14
von PMTheQuick
Hm... Oder notfalls halt Strg + Alt + S...

Gruss
PMTheQuick ;)

Verfasst: 05.02.2008 14:14
von bobobo
wer nur drei Finger hat kann das nicht drücken :)

Verfasst: 05.02.2008 14:15
von Morty_tmp
Was ist so schwer daran, oben gezeigtes Beispiel zu erweitern?

Code: Alles auswählen

Procedure Taste() 
  Repeat 
    If GetAsyncKeyState_(#VK_LCONTROL) And GetAsyncKeyState_(#VK_LMENU) And GetAsyncKeyState_(#VK_P) And GetAsyncKeyState_(#VK_2) 
      Debug "wurde gedrückt" 
    EndIf 
    Delay(10) 
  ForEver 
EndProcedure 

OpenConsole() 
  CreateThread(@Taste(),0) 
  Input() 
CloseConsole()
Wenn Du die 2 auf'm Numpad brauchst musst Du #VK_NUMPAD2 statt #VK_2 nutzen.

Viel Spass beim Fingerbrechen.

Morty

Verfasst: 05.02.2008 14:19
von RSBasic
Mist da war Morty_tmp schneller als ich, weil ich die verdamte Konstante (#VK_LMENU) der Taste nicht finden konnte