SetWindowsHookEx 测试


LRESULT CALLBACK GameProc(          
	int code,
    WPARAM wParam,
    LPARAM lParam
)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());
	
	if((wParam == VK_HOME)&&(lParam&(1<<31)))
	{
		//AfxMessageBox("www.gyarmy.com");
		//展示对话框
		if(m_dialog == NULL)
		{
			m_dialog = new  CWGDialog();
			m_dialog->Create(IDD_DLG_MAIN);
		}
		m_dialog->ShowWindow(SW_SHOW);
		
		//解决销毁的bug
	}

	return CallNextHookEx(0,code,wParam,lParam);
}




#define GameCaption "test2018070301"

//钩子函数
void SetHook()
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());
	HWND gameh = FindWindow(NULL,GameCaption);
	if(gameh==0)
	{
		AfxMessageBox("没有找到游戏");
	}

	DWORD tid = GetWindowThreadProcessId(gameh,NULL);

	//安装钩子
	::SetWindowsHookEx(WH_KEYBOARD,&GameProc,GetModuleHandle("GameDll.dll"),tid);
}


原文链接: SetWindowsHookEx 测试 版权所有,转载时请注明出处,违者必究。
注明出处格式:流沙团 ( https://www.gyarmy.com/post-443.html )

发表评论

0则评论给“SetWindowsHookEx 测试”