Keyboardsimulering

Tags:    c++

Hej, Jeg vil lave et program det skal simulere at jeg trykker på en tast men hvordan gør jeg det? Og jeg skal lige huske at sige det er i Windows xp. :)




6 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Hvordan helt præcist vil du have det?

Er det et program der skal ligge i baggrunden, et program der udfører andre opgaver, men stadig kan modtage inputs, eller hvordan?

Hvis du vil have et program der skal kunne modtage tastetryk på alle givne tidspunkter, kan du evt. lave noget multithreading.

Jeg lavede lige hurtigt et eksempel, dog kan det kun kører under Windows. Funktionen du skal lægge mærke til er GetAsyncKeyState.
Fold kodeboks ind/udKode 

I koden gør jeg brug af VK_DOWN, som er den virtuelle kode for ned-knappen. En lang liste over virtuelle koder kan findes på MSDN.

Direkte link: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/WindowsUserInterface/UserInput/VirtualKeyCodes.asp



v0id. Hvordan får du "simulere tastetryk" til "modtage tastetryk". Han vil lave et program som skal simulere at der bliver trykket på en tast. Funktionen der skal bruges er keybd_event som er en funktion i Windows. Men hvordan man bruger den i C/++ kan jeg ikke lige hjælpe med, men det ser ud til at der er et eksempel på msdn.


http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputfunctions/keybd_event.asp



Indlæg senest redigeret d. 10.04.2007 17:25 af Bruger #3275
Ja tak:D det var et program der kører i bagrunden jeg leder efter...



Ja Decko har ret jeg har lige siddet og leget med det og det var ikke lige hensigten at tælle antal tastetryk... men smart var det:P



Indlæg senest redigeret d. 10.04.2007 17:50 af Bruger #11268

v0id. Hvordan får du "simulere tastetryk" til "modtage tastetryk".

Hov, selvfølgelig. Jeg var ved ikke lige hvad jeg tænkte.


hensigten at tælle antal tastetryk... men smart var det

Det var nu også ment som et eksempel, men ikke et eksempel du kunne bruge.

keybd_event
For at følge op på Jonas' svar, så har jeg lige hurtigt lavet et eksempel.
Fold kodeboks ind/udKode 

Meget mere information kan du finde via det link Jonas linkede til. Dette var bare et hurtigt eksempel, som gør det nemt at forstå - ihvertfald princippet.
Hvis det var noget du kunne bruge, så giv Jonas pointsne, det var trodsalt ham der kom med det.



Indlæg senest redigeret d. 10.04.2007 18:54 af Bruger #8422
Man bør bruge SendInput i stedet for keybd_event:
http://msdn2.microsoft.com/en-us/library/ms646310.aspx



t