大佬教程收集整理的这篇文章主要介绍了如何使用SetWindowsHookEx和WH_KEYBOARD挂钩外部进程,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在XP SP2上测试.
@H_163_15@myDLL代码#include <windows.h> #include <iostream> #include <st@L_944_3@.h> HINSTANCE hinst; #pragma data_seg(".shared") HHOOK hhk; #pragma data_seg() //#pragma comment(linker,"/SECTION:.shared,RWS") compiler error in VC++ 2008 express LRESULT CALLBACK wireKeyboardProc(int code,WPARAM wParam,LPARAM lParam) { if (code < 0) { return CallNextHookEx(0,code,wParam,lParam); } Beep(1000,20); return CallNextHookEx(hhk,lParam); } extern "C" __declspec(dllexport) void install(unsigned long threadID) { hhk = SetWindowsHookEx(WH_KEYBOARD,wireKeyboardProc,hinst,threadID); } extern "C" __declspec(dllexport) void uninstall() { UnhookWindowsHookEx(hhk); } BOOL WINAPI DllMain(__in HINSTANCE hinstDLL,__in DWORD fdwReason,__in LPVOID lpvReserved) { hinst = hinstDLL; return TRUE; }
我的节目
#include <Windows.h> unsigned long GetTargetThreadIdFromWindow(char *className,char *windowName) { HWND targetWnd; HANDLE hProcess; unsigned long processID = 0; targetWnd = FindWindow(className,windowName); return GetWindowThreadProcessId(targetWnd,&processID); } int _tmain(int argc,_TCHAR* argv[]) { unsigned long threadID = GetTargetProcessIdFromWindow("Notepad","Untitled - Notepad"); printf("TID: %i",threadID); HINSTANCE hinst = LoadLibrary(_T("MyDLl.dll")); if (hinst) { typedef void (*Install)(unsigned long); typedef void (*Uninstall)(); Install install = (Install) GetProcAddress(hinst,"install"); Uninstall uninstall = (Uninstall) GetProcAddress(hinst,"uninstall"); install(threadID); Sleep(20000); uninstall(); } return 0; }
以上是大佬教程为你收集整理的如何使用SetWindowsHookEx和WH_KEYBOARD挂钩外部进程全部内容,希望文章能够帮你解决如何使用SetWindowsHookEx和WH_KEYBOARD挂钩外部进程所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。