Hey!
Ich versuche mich grade an einem Keybord Hook.
Ich habe dazu das Pipetten Tutorial gelesen und meine alles gleich gemacht zu haben aber wenn ich den Hook installieren will bekomm ich immer den Fehlercode 0.
Hier mal die Dll:
Was mir noch nicht klar ist ist die sache mit dem Shared data segment. Vielleicht liegt der fehler ja da...
Ich versuche mich grade an einem Keybord Hook.
Ich habe dazu das Pipetten Tutorial gelesen und meine alles gleich gemacht zu haben aber wenn ich den Hook installieren will bekomm ich immer den Fehlercode 0.
Hier mal die Dll:
Code:
#include "dll.h"
#include <iostream.h>
#pragma comment(linker, "/section:.HKT, rws")
#pragma data_seg(".HKT")
HHOOK hook = NULL;
BOOL sg_bHookInstalled = FALSE;
HINSTANCE dll = NULL;
#pragma data_seg()
BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
dll=hInst;
/* Returns TRUE on success, FALSE on failure */
return TRUE;
}
extern "C"
{
DLLIMPORT void hello(void)
{
cout<<"Hallo!";
MessageBox(0,"HALLO","hi",MB_ICONINFORMATION);
}
}
extern "C"
{
DLLIMPORT bool install()
{
MessageBox(0,"Lade","...",MB_ICONINFORMATION);
hook = SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)KeyboardProc,dll,0);
if(hook==NULL)
{
MessageBox(0,"Fehler","...",MB_ICONINFORMATION);
cout<<GetLastError();
return FALSE;
}
return TRUE;
}
}
extern "C"
{
DLLIMPORT bool uninstall()
{
}
}
LRESULT CALLBACK KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
cout<<"Taste gedrückt";
if(nCode<0)
return CallNextHookEx(hook,nCode,wParam,lParam);
if(nCode==HC_ACTION)
{
switch(wParam)
case 0x41: cout<<"A gedrückt!";
return CallNextHookEx(hook,nCode,wParam,lParam);
}
}
Was mir noch nicht klar ist ist die sache mit dem Shared data segment. Vielleicht liegt der fehler ja da...