;Hello all! ;Trying to get a simple KeyHook program working. ;I'm missing a lot, I know, but this is as far as i got. ;I want it to copy all keypresses into a a file, ;and put the file in the same dir. ;Any suggestions? , if you read this, i need your ;help man... ;Thanks ;Source: ;Much needed work... .386 .model flat,stdcall option casemap:none GetKeys proto :DWORD,:DWORD,:DWORD,:DWORD include C:\masm32\include\kernel32.inc include C:\masm32\include\user32.inc include C:\masm32\include\windows.inc include C:\masm32\include\gdi32.inc includelib C:\masm32\lib\user32.lib includelib C:\masm32\lib\kernel32.lib includelib C:\masm32\lib\gdi32.lib .data KeyFile db "KeyFile",0 ;File to be written in... .data? hInstance HINSTANCE ? CommandLine LPSTR ? Buffer db dup 256 (?) ;512 (?) rather? .code start: invoke GetKeys,addr KeyFile invoke ExitProcess,0 GetKeys hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM invoke SetWindowsHookEx,WH_KEYBOARD,?,hInstance,? invoke GetKeyboardState,addr Buffer invoke GetKeyNameText,16,addr Buffer,256 GetKeys endp end start
if u want to hook all key pressed message, u have to hook in the .dll file. See Iczelion's Tutorial, there is the sample code. Or if u want, I have writen the screen capture program that hook both key pressed and mouse click, if u want i can sending the code to u.
my suggestion was to still call invoke SetWindowsHookEx, but after that you must call the KeyboardProc function. ;-----start----- GetKeys hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM invoke SetWindowsHookEx,WH_KEYBOARD,NULL,hInstance,NULL .if uMsg==WH_KEYBOARD ;KeyboardProc,code,wParam,lParam ;code: either HC_ACTION (take the key and throw it out of the ;queue, or HC_NOREMOVE (keep key in queue) ;I supose it would be easyer to just keep HC_ACTION ;wParam: Specifies the virtual-key code of the key that ;generated the keystroke message. ;lParam Specifies the repeat count, scan code, extended-key ;flag, context code, previous key-state flag, and transition- ;state flag. This parameter can be a combination of the ;following values: (conult Win32 Programmer's Reference) invoke KeyboardProc,HC_ACTION,wParam,lParam ;----end--- so now you can proccess the key stroke, if im wrong let me know. just read the whole section the the KeyboardProc function.
hey sorry nok, was it you i wanted to send the source to? sorry. im sendin' it now......