// zpz.cpp : 定义 DLL 应用程序的导出函数。 // #include "stdafx.h" #pragma data_seg("publicdata") HHOOK hhook = NULL; HINSTANCE pinstance = NULL; HANDLE g_Handle; #pragma data_seg() HANDLE WINAPI myCreateFile( __in LPCWSTR lpFileName, __in DWORD dwDesiredAccess, __in DWORD dwShareMode, __in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes, __in DWORD dwCreationDisposition, __in DWORD dwFlagsAndAttributes, __in_opt HANDLE hTemplateFile ) { HANDLE hFile = CreateFile( lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile); return hFile; } BOOL WINAPI myWriteFile( __in HANDLE hFile, __in_bcount_opt(nNumberOfBytesToWrite) LPCVOID lpBuffer, __in DWORD nNumberOfBytesToWrite, __out_opt LPDWORD lpNumberOfBytesWritten, __inout_opt LPOVERLAPPED lpOverlapped ) { BOOL bRet = WriteFile(hFile, lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, lpOverlapped); return bRet; } __declspec(dllexport) int InstallHook() { hhook = SetWindowsHookEx(WH_KEYBOARD, myWriteFile, pinstance, 0); } __declspec(dllexport) int UninstallHook() { }