首先是简单的基础文档程序加按钮,然后调用导入的dll中的sethook函数对目标窗体句柄进行监听键盘事件 F5呼出 dll中的窗体
DLL中的钩子函数
wg *P=NULL;
CDllApp theApp;
CDllApp::ExitInstance(){
delete P;
CWinApp::ExitInstance();
return 1;
}
LRESULT CALLBACK KeyboardProc(int code,
WPARAM wParam,
LPARAM lParam
){
AFX_MANAGE_STATE(AfxGetStaticModuleState());
if(wParam==VK_F5&&((lParam&(1<<31))==0))
{
if(P==NULL)
{
P=new wg;
P->Create(IDD_DIALOG1);
}
P->ShowWindow(SW_SHOW);
}
return CallNextHookEx(NULL, code, wParam, lParam);
}
void setHOOK(){
AFX_MANAGE_STATE(AfxGetStaticModuleState());
HWND hwnd=::FindWindow(NULL,"QQ");
if(!hwnd)
{
AfxMessageBox("先运行QQ");
return;
}
DWORD Pid,Tid;
Pid=GetWindowThreadProcessId(hwnd,&Tid);
SetWindowsHookEx(WH_KEYBOARD,KeyboardProc, GetModuleHandle("dll.dll"), Pid);
}
一定要将dll中需要调用的函数加载def定义里面,否则不能调用
当点击启动外挂的时候,程序就会加载dll中的函数 呼出一个窗体
电此下载demo 密码:l7a4