zpz.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // zpz.cpp : 定义 DLL 应用程序的导出函数。
  2. //
  3. #include "stdafx.h"
  4. #pragma data_seg("publicdata")
  5. HHOOK hhook = NULL;
  6. HINSTANCE pinstance = NULL;
  7. HANDLE g_Handle;
  8. #pragma data_seg()
  9. HANDLE WINAPI myCreateFile(
  10. __in LPCWSTR lpFileName,
  11. __in DWORD dwDesiredAccess,
  12. __in DWORD dwShareMode,
  13. __in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  14. __in DWORD dwCreationDisposition,
  15. __in DWORD dwFlagsAndAttributes,
  16. __in_opt HANDLE hTemplateFile
  17. )
  18. {
  19. HANDLE hFile = CreateFile(
  20. lpFileName,
  21. dwDesiredAccess,
  22. dwShareMode,
  23. lpSecurityAttributes,
  24. dwCreationDisposition,
  25. dwFlagsAndAttributes,
  26. hTemplateFile);
  27. return hFile;
  28. }
  29. BOOL WINAPI myWriteFile(
  30. __in HANDLE hFile,
  31. __in_bcount_opt(nNumberOfBytesToWrite) LPCVOID lpBuffer,
  32. __in DWORD nNumberOfBytesToWrite,
  33. __out_opt LPDWORD lpNumberOfBytesWritten,
  34. __inout_opt LPOVERLAPPED lpOverlapped
  35. )
  36. {
  37. BOOL bRet = WriteFile(hFile,
  38. lpBuffer,
  39. nNumberOfBytesToWrite,
  40. lpNumberOfBytesWritten,
  41. lpOverlapped);
  42. return bRet;
  43. }
  44. __declspec(dllexport) int InstallHook()
  45. {
  46. hhook = SetWindowsHookEx(WH_KEYBOARD, myWriteFile, pinstance, 0);
  47. }
  48. __declspec(dllexport) int UninstallHook()
  49. {
  50. }