Optimus89
19-03-2011, 19:42
Salve a tutti,
sto cercando di imparare ad usare le windows hook procedure. Ho scritto un programmino (che dura 10 secondi) che dovrebbe scrivere una "x" su un file txt ogni volta che un tasto viene premuto...
L'unica cosa che viene scritta nel file di testo č "Dll chiamata".
------------------------------------ codice della dll --------------
#include <windows.h>
#include <stdio.h>
#include "dll_header.h"
EXPORT LRESULT CALLBACK hookproc (int nCode, WPARAM wParam, LPARAM lParam){
FILE *fp = fopen ("log.txt", "wb");
fprintf(fp, "\nx");
fclose(fp);
return CallNextHookEx(NULL, nCode, wParam, lParam);
}
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
FILE *fp = fopen ("log.txt", "wb");
fprintf(fp, "\nDll chiamata");
fclose(fp);
return TRUE;
}
------------------------------------------------------------
----------------------- main.c----------------------------
#include <windows.h>
#include "dll_header.h"
#include <stdio.h>
EXPORT LRESULT CALLBACK hookproc(int nCode, WPARAM wParam, LPARAM lParam);
int main(){
HMODULE hm = LoadLibrary ("lib.dll");
HHOOK hh = SetWindowsHookEx (WH_KEYBOARD_LL, hookproc, hm, 0);
Sleep(10000);
BOOL b = UnhookWindowsHookEx (hh);
return 0;
}
-----------------------------------------------------------
Lavoro da linea di comando tramite Mingw, su Win7. Qualcuno puņ aiutarmi?
sto cercando di imparare ad usare le windows hook procedure. Ho scritto un programmino (che dura 10 secondi) che dovrebbe scrivere una "x" su un file txt ogni volta che un tasto viene premuto...
L'unica cosa che viene scritta nel file di testo č "Dll chiamata".
------------------------------------ codice della dll --------------
#include <windows.h>
#include <stdio.h>
#include "dll_header.h"
EXPORT LRESULT CALLBACK hookproc (int nCode, WPARAM wParam, LPARAM lParam){
FILE *fp = fopen ("log.txt", "wb");
fprintf(fp, "\nx");
fclose(fp);
return CallNextHookEx(NULL, nCode, wParam, lParam);
}
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
FILE *fp = fopen ("log.txt", "wb");
fprintf(fp, "\nDll chiamata");
fclose(fp);
return TRUE;
}
------------------------------------------------------------
----------------------- main.c----------------------------
#include <windows.h>
#include "dll_header.h"
#include <stdio.h>
EXPORT LRESULT CALLBACK hookproc(int nCode, WPARAM wParam, LPARAM lParam);
int main(){
HMODULE hm = LoadLibrary ("lib.dll");
HHOOK hh = SetWindowsHookEx (WH_KEYBOARD_LL, hookproc, hm, 0);
Sleep(10000);
BOOL b = UnhookWindowsHookEx (hh);
return 0;
}
-----------------------------------------------------------
Lavoro da linea di comando tramite Mingw, su Win7. Qualcuno puņ aiutarmi?