C++ GetAsyncKeyState Virtual Code

hi!

ich möchte für ein program den key status von der m taste erfragen (also pressed oder unpressed).
das muss auf jeden fall mit dem GetAsyncKeyState Befehl geschehen!!!
Aber für diesen brauche ich den virtual code von der m taste.

SHORT GetAsyncKeyState(
int vKey // virtual-key code
);

das ist die funktion.
ich habe auch schon folgendes probiert:
GetAsyncKeyState( VK_M);
aberVK_M ist nunmal kein integer ;)

naja wäre schon wenn ihr mir helft.

greetz
 
so, da möchte ich doch mal gnädig sein.

VK_A = 41
VK_Z = 5A

VK_M kannste dir ausrechnen xD


Falls du nicht rechnen möchtest, kannst du auch das nehmen, was du bei google gefunden hättest:

Private Const VK_M = &H4D

bitte aber nicht in c++ benutzen ;)

Suche nach "VK_M", erstes Ergebnis -.-
 
ja das hatte ich auch schon
aber beim kompilieren krieg ich ne fehler meldung, von wegen
4D ist kein integer...

also muss da ein anderer wert der nur aus zahlen besteht. ich habe das auch in einem anderen programm mal gesehen, das war so eine 5 oder 6 stellige zahl die da stand.
 
ähm, also entweder als dezimalzahl ausdrücken oder eben markieren, dass es eine hexadezimale zahl ist xD

0x4D oder so, musste ma schauen, wie man das in c++ macht...
 
hm, VK_X ist im Prinzip nichts anderes als irgendwo in einem Header definirte Zeichen:
Zitat aus Winuser.h
/* VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A) */
Also IMHO nur Zahlen und keine zeichen ;)

in WindowsHeadern findet man so schöne Sachen wie:
#define IsMButtonDown() (GetKeyState(VK_MBUTTON) < 0)

z.B findet man solche Sachen:
http://www.codase.com/search/call?name=GetAsyncKeyState
Vielleicht hast Du nur irgendeinen Header nicht includiert ;) ?

Und müssen unter Deinem Compiler Hexzahlen nicht mit 0x eingeleitet werden?
Z.B 0x4D.
 
was ist der virtual key code für die taste die das folgende zeichen erzeugt:

^

also die taste links neben der 1 taste und über der tabulator taste
 
immer noch VK_1 aber Du musst noch feststellen, ob dabei eben die SHIFT Taste gedrückt wurde - wenn ich das der Doku richtig entnehme:
You can use the virtual-key code constants VK_SHIFT, VK_CONTROL, and VK_MENU as values for the vKey parameter. This gives the state of the shift, ctrl, or alt keys without distinguishing between left and right.
.
hier habe ich was "rausgerissen":
((GetAsyncKeyState(VK_SHIFT)<0))&&((GetAsyncKeyState('G')<0))
http://www.codeproject.com/internet/NetworkAdmin.asp
 
nein! ich meine doch nicht die 1 taste sondern die ^ taste

und ich bekommen folgendes zeichen auch nicht hin: _

das mit der shift taste habe ich auch probiert.
 
ich hab das schon versucht, aber bin nicht weitergekommen...
hast du n programm dafür geschrieben?

ich kann den short der von der funktion als return is, net auslesen...
 
noch nicht, aber kann ich mal machen
ich edite es dann rein.

edit: Müsste funzen, ist in masm32 gecodet, zeichen in die edit box eingeben und den button drücken
 
ich benutze

keybd_event( 0x0D, 0, 0, NULL);
um einen tastenanschlag zu simulieren.

ich habe schon sehr lange im internet gesucht, aber ich finde einfach keine möglichkeit
wie man das zeichen

_

"drücken" kann...

weiß das jemand?

@lesco
vielen dank für dein programm! das hat mir echt sehr viel geholfen
 
keybd_event(VK_SHIFT,0,0,0);
keybd_event(0xBD,0,0,0);
keybd_event(0xBD,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_SHIFT,0,KEYEVENTF_KEYUP,0);
 
Zurück
Oben