2010-08-11 10 views
5

Chcę zrobić hak, który będzie działać jak "zdarzenie" (a nie z agly GetAsyncKeyState) w języku C# (Chcę to zrobić w C++). , więc zrobiłem dll z tej treści: http://pastebin.com/yEHJKSS7.niski poziom Hooker

cóż, nie wywołuje funkcji Handler.

przy okazji, oto jak użyłem dll:

void KeysHandler(int vkKey, int flags) 
{ 
    if(vkKey == VK_ESCAPE) 
     exit(0); 
    File << vkKey << endl << flags << endl; 
} 

int main 
{ 
    SetHandler(HandlerFunc); 
    //sleep here 
} 

edit: teraz zobaczyłem, jak mogę "debug" w dll, oto wyniki: the SetWindowsHookEx zwraca 255 - Myślę, że to starnge, bo warto to wypaść dokładnie - sprawdzę w dokumentacji, co to znaczy.

edycja: 255 jest prawidłową wartością zwracaną: O tylko NULL (0) jest błędem.

Nie mam pojęcia, o co chodzi.

edytuj: dobrze, teraz mój przyjaciel przyniósł mi dziwkę, która pracowała dla niego. i zgadnij ... to nie działało.

Zdecydowałem, że to bardzo dziwne, więc zrobiłem GetLastError i otrzymałem 127 - procedura nie została znaleziona. Nie widzę żadnego powodu, moja procedura nie zostanie znaleziony, prosimy o pomoc :(

+11

Patty na niskopoziomową dziwkę w ciągu dnia? –

+37

+1 za tytuł, który sprawił, że przeczytałem to pytanie :) –

+12

Tytuł mnie zaintrygował, faktyczne pytanie mnie rozczarowało. –

Odpowiedz

1

jest głównym SetHandler naprawdę tylko nazywając zastosowaną przez sen?

Musisz MessageLoop, aby wszelkie imprezy będzie zadzwonił:

+0

na razie, spróbuj hooker na oknie konsoli. w SetWindowHookEX powinna znajdować się "pętla komunikatów" klawiatury, a procedura również znajduje się w bibliotece dll. @Philipp & (|) Frank: Naprawdę przepraszam, że mój ojczysty język nie jest angielski. Staram się. – Ohad

+0

OK, znalazłem kierunek (redagowałem, pytanie), ale nie wiem dokładnie, co się stało, ponieważ mój przyjaciel powiedział mi, że to działa dla niego. – Ohad

Powiązane problemy