键盘钩子不起作用,请大家来找茬。

anzhaozy 2016-07-17 03:12:08

#include "stdafx.h"
#include "Shi_Lu.h"
#include "SLCQGame.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
SLCQGame *p=NULL;

BEGIN_MESSAGE_MAP(CShi_LuApp, CWinApp)

END_MESSAGE_MAP()

CShi_LuApp::CShi_LuApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}

// The one and only CShi_LuApp object

CShi_LuApp theApp;
CShi_LuApp::ExitInstance()
{
delete p;
CWinApp::ExitInstance();
return 1;
}

LRESULT CALLBACK KeyboardProc( int nCode, WPARAM wParam, LPARAM lParam)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());

if((wParam == VK_F5)&&((lParam&(1<<31))==0))
{
if(p==NULL)
{
p=new SLCQGame;
p->Create(IDD_DIALOG_SLGAME);
}
p->ShowWindow(SW_SHOW);
}

return CallNextHookEx(NULL,nCode,wParam,lParam);
}

void SetHook()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
HWND hwnd=::FindWindow(NULL,"SRO_Client");
if(!hwnd)
{
AfxMessageBox("游戏未运行");
return;
}
DWORD Tid,Pid;
Tid=GetWindowThreadProcessId(hwnd,&Pid);
SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,GetModuleHandle("Shi_Lu.dll"),Tid);
}


调用:


__declspec (dllimport) void SetHook();
#pragma comment(lib,"Shi_Lu.lib")

void CMyDlg::OnButton1()
{
// TODO: Add your control notification handler code here
SetHook();
}


问题:
当SRO_Client程序运行时,按F5键没有反应。

程序是按照一个视频教程写的,代码对照了数次,
写了好多次,检查了好多次,不知道问题到底出在哪里。
新手求大家帮忙找茬。 谢谢。
小弟只有13分
...全文
271 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧