// zpzDll.cpp : 定义 DLL 应用程序的导出函数。 // #include "stdafx.h" #include "zpzDll.h" #include #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; }