| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- // zpzDll.cpp : 定义 DLL 应用程序的导出函数。
- //
- #include "stdafx.h"
- #include "zpzDll.h"
- #include <windows.h>
- #pragma data_seg("shared")
- HWND g_hWnd = NULL;
- HHOOK g_Hook = NULL;
- #pragma data_seg()
- #pragma comment(linker,"/SECTION:shared,RWS")
- extern HINSTANCE g_Inst;
- /*
- *钩子过程函数,不做任何处理,因为目的仅仅是把dll注入到进程
- **/
- LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam)
- {
- //MessageBox(NULL, L"2222222222222", L"2222222222222222222", MB_OK);
- return CallNextHookEx(g_Hook, nCode, wParam, lParam);
- }
- /*
- *对所有进程安装钩子,所有新开进程都会加载这个dll
- **/
- BOOL InstallHook()
- {
- if (g_Hook == NULL)
- {
- g_Hook = SetWindowsHookEx(WH_KEYBOARD, CBTProc, g_Inst, 0);
- if (g_Hook != NULL)
- {
- return TRUE;
- }
- }
- return FALSE;
- }
- void UninstallHook()
- {
- if (UnhookWindowsHookEx(g_Hook))
- {
- g_Hook = NULL;
- }
- }
- void SetHwnd(HWND hWnd)
- {
- g_hWnd = hWnd;
- }
|