Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Keyboard hooking ???

[es] :: C/C++ programiranje :: Keyboard hooking ???

[ Pregleda: 2365 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

`and

Član broj: 32490
Poruke: 776
*.vdial.verat.net.

Sajt: www.bitbyterz.org


Profil

icon Keyboard hooking ???17.10.2004. u 16:52 - pre 237 meseci
Malo me je zanimalo ovo pa sam guglao nasao neke kodove, prilagodio i sad ne znam sta sam uradio ... lol !

Evo koda:

Code:

#include <windows.h>   
#include "resource.h"


class MYHOOKDATA 



public:
    int nType; 
    HOOKPROC hkprc; 
    HHOOK hhook; 
} ;
 

LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) 

     
    static int c = 0; 


    MYHOOKDATA keyboard;  
    
    keyboard.nType = WH_KEYBOARD;
    keyboard.hkprc = KeyboardProc;

    return CallNextHookEx(keyboard.hhook, nCode, wParam, lParam);

    
}


BOOL CALLBACK DlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{

    switch(Message)
    {

        case WM_INITDIALOG:

        SetWindowsHookEx( WH_KEYBOARD, KeyboardProc,(HINSTANCE) NULL, GetCurrentThreadId());

        break;

        case WM_CLOSE :
        
            DestroyWindow (hwnd);
            break;

        case WM_DESTROY:
            PostQuitMessage (0);
            break;

        default:
            return FALSE;
    }
    return TRUE;
}



int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow)
{
    return DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DlgProc);
}


E sad me zanima da li ovaj program uopste radi, tj da li prati poruke tastature ... i ako radi kako da npr sve sto je kucano prosledim na neki Edit box ....

tnx
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: Keyboard hooking ???17.10.2004. u 17:03 - pre 237 meseci
U KeyboardProc funkciju ubaci kod koji hoces (npr. da se upisuje u neki Edit box). nCode ti je kod tastera (za alfanumericke tastere ASCII).
 
Odgovor na temu

`and

Član broj: 32490
Poruke: 776
213.244.197.*

Sajt: www.bitbyterz.org


Profil

icon Re: Keyboard hooking ???18.10.2004. u 12:19 - pre 237 meseci
E ok, progy radi ... mislim prati poruke tastature ! Ali imam problem kod linije koja je predstavljena kao komentar ( pogledaj kod,dole), kako da izvedem da sve sto je ukucano salje na neki editbox ... tnx

Code:

#include <windows.h>   
#include "resource.h"


class MYHOOKDATA 



public:
    int nType; 
    HOOKPROC hkprc; 
    HHOOK hhook; 
} ;
 

LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) 
{  
    MYHOOKDATA keyboard;  
    
    keyboard.nType = WH_KEYBOARD;
    keyboard.hkprc = KeyboardProc;    


    

    HWND hwnd = FindWindow(NULL,"Dialog");

    char key = (char) nCode;

    //SetDlgItemText(hwnd,1000,key);


    return CallNextHookEx(keyboard.hhook, nCode, wParam, lParam);
    
}


BOOL CALLBACK DlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{

    switch(Message)
    {
        case WM_INITDIALOG:

        break;

        case WM_CLOSE :
        
            DestroyWindow (hwnd);
            break;

        case WM_DESTROY:
            PostQuitMessage (0);
            break;

        default:
            return FALSE;
    }
    return TRUE;
}



int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow)
{


    SetWindowsHookEx( WH_KEYBOARD, KeyboardProc,(HINSTANCE) NULL, GetCurrentThreadId());

    return DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DlgProc);
}


Dobijam gresku: D:\Documents and Settings\`and\Desktop\Exe Tool\Exe Tools.cpp(33) : error C2664: 'SetDlgItemTextA' : cannot convert parameter 3 from 'char' to 'const char *'

Verovatno gresim negde oko pokazivaca ili slicno, jer ih nisam bas razumeo ... pa ako moze help ... tnx !
 
Odgovor na temu

Mirko Rajkovača
Subotica

Član broj: 18458
Poruke: 119
*.ptt.yu.



Profil

icon Re: Keyboard hooking ???18.10.2004. u 18:29 - pre 237 meseci
Problem je u tome sto funkcija uzima pointer na null terminated niz(char*) a ne char.
Probaj ovo:

Code:
char key[2];
  key[0] = (char) nCode;
  key[1] = 0;

   SetDlgItemText(hwnd,1000,key);


Razlika izmedju softvera i hardvera je:
Softver je nesto sto mozes psovati, a hardver je... pa hardver je nesto sto mozes sutati
 
Odgovor na temu

`and

Član broj: 32490
Poruke: 776
*.vdial.verat.net.

Sajt: www.bitbyterz.org


Profil

icon Re: Keyboard hooking ???18.10.2004. u 23:23 - pre 237 meseci
Uh ok taj kod radi ali ... ! Probao sam i sa SetDlgItemInt i video da je taj kod uvek 0 ( nula ) ... zasto ?
 
Odgovor na temu

[es] :: C/C++ programiranje :: Keyboard hooking ???

[ Pregleda: 2365 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.