Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 4 odgovora
  • 3.030 pregleda

Najnovija ↓

Keyboard hooking ??? 17.10.2004. u 17:52 · pre 268 meseci #1
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
Re: Keyboard hooking ??? 17.10.2004. u 18:03 · pre 268 meseci #2
U KeyboardProc funkciju ubaci kod koji hoces (npr. da se upisuje u neki Edit box). nCode ti je kod tastera (za alfanumericke tastere ASCII).
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Keyboard hooking ??? 18.10.2004. u 13:19 · pre 268 meseci #3
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 !
Re: Keyboard hooking ??? 18.10.2004. u 19:29 · pre 268 meseci #4
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);

Potpis
Razlika izmedju softvera i hardvera je:
Softver je nesto sto mozes psovati, a hardver je... pa hardver je nesto sto mozes sutati
Re: Keyboard hooking ??? 19.10.2004. u 00:23 · pre 268 meseci #5
Uh ok taj kod radi ali ... ! Probao sam i sa SetDlgItemInt i video da je taj kod uvek 0 ( nula ) ... zasto ?
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme