Avatar billede d34c0n Praktikant
25. februar 2003 - 17:29 Der er 6 kommentarer og
1 løsning

Sending keystrokes...

Hejsa.

Jeg mangler et rigtigt eksempel på hvordan man sender keystrokes. Jeg har ledt over alt, bl.a. SendMessage() og keybd_event() men jeg forstår ikke at bruge dem.

Jeg vil kunne checke efter NUMPAD0 vha. GetAsyncKeyState() men hvordan kunne jeg mon sende "blah" som keystrokes af?
Giv mig et perfekt eksempel som virker :)

Forresten nogen der har nogle tutorials om game trainers?
Mange tak.
Avatar billede driis Nybegynder
25. februar 2003 - 18:09 #1
Du bruger keyb_event() sådan her, f.eks :

#include <iostream>
#include <windows.h>

using namespace std ;

#define keyDown 0

int main()
{
    unsigned char streng[] = "BLAH" ;
    int i = 0 ;
    cout << "Skift til et vindue med en tekstboks, der kan skrives i" << endl ;

    Sleep(2000) ;

    while ( streng[i] )
    {
        keybd_event(streng[i],0,keyDown,0) ;                // tast ned
        keybd_event(streng[i],0,KEYEVENTF_KEYUP,0)  ;        // slip tast
        i++ ;
    }

    return 0 ;
}
Avatar billede driis Nybegynder
25. februar 2003 - 18:16 #2
Ovenstående program taster det ind, der står i streng. For at du kan se, at der bliver skrevet noget, skal du selvfølgelig have markøren til at stå i et tekstfelt, hvor der kan skrives tekst. Derfor har jeg sat en 2 sekunders forsinkelse ind, så du kan nå at skifte til f.eks. notepad så du kan se det virke.

Essensen i det hele er, at du både skal sende en keybd_event, hvor tasten trykkes ned, og én, hvor tasten slippes.

Bemærk at teksten i streng skal være uppercase, idet ASCII værdien af bogstaverne så svarer til de deres virtual key code, som keybd_event bruger. For at se virtual key code for andre taster end bogstaverne, så se her:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/w98ddk/hh/w98ddk/keycnt_4fqr.asp

De fleste andre taster end bogstaverne er også defineret som konstanter i windows.h , bl.a. VK_ENTER , VK_BACKSPACE osv.
Avatar billede driis Nybegynder
25. februar 2003 - 18:17 #3
Avatar billede d34c0n Praktikant
27. februar 2003 - 19:09 #4
Hvordan ville jeg så sende en 'enter' key afsted? Jeg har da prøvet med VK_ENTER.
Avatar billede driis Nybegynder
27. februar 2003 - 21:00 #5
Ups, det var vist en tanketorsk fra min side ; den hedder VK_RETURN
Avatar billede driis Nybegynder
27. februar 2003 - 21:01 #6
... og du skal huske både at sende en keydown og en keyup event.
Avatar billede d34c0n Praktikant
28. februar 2003 - 16:36 #7
:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester