100分--关于HOOK,我需要在程序A点击按钮1中的Click事件里,执行程序B[在线求助] 我需要在程序A点击按钮1中的Click事件里,执行程序B,然后继续运行程序A如何使用HOOK实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 sorry...也怪你没说清楚问题... ShellExecuteShellExecuteEx 如果用HOOK来做的话,程序B可以作成DLL形式。程序A要用一个程序来调用,主要代码如下:WinExec("A.exe",SW_SHOW);hWnd = FindWindow();//得到程序A的窗口句柄dwThreadId = GetWindowThreadProcessId(hWnd,NULL);SetHook(dwThreadId);PostMessage(hWnd,WM_NULL,0,0);程序B的主要代码如下:__declspec(dllimport) BOOL WINAPI SetHook(DWORD dwThreadId);//需要倒出该函数BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ){ if(ul_reason_for_call == DLL_PROCESS_ATTACH) { g_hinstDll = (HINSTANCE)hModule ; } return TRUE;}BOOL WINAPI SetHook(DWORD dwThreadId){ hHook = SetWindowsHookEx (WH_CALLWNDPROC,CallWndProc,g_hinstDll,dwThreadId);}LRESULT WINAPI CallWndProc(int nCode,WPARAM wParam,LPARAM lParam){ MSG * pmsg = (MSG*)lParam; DWORD dwThreadId; if(pmsg->message==WM_COMMAND&&pmsg->wParam==ID_BUTTON) { //要执行的代码 } return (CallNextHookEx(hHook,nCode,wParam,lParam)); } 控件通知格式 如何同时更新2个列表? 用按钮组合写一个树控件怎么定义? settimer()函数用的时候出错了 今天看见有人发的帖子有脏话,心里感到不舒服!发表个人言论纯属个人意见! 谁有vc++下,水晶报表连接ado的例子? 自定义控件的style属性设置问题 ********急急急 利用vc怎么检查网络是否为通,类似Windows中的Ping命令********* 关于CSocket的错误 如何使 ListCtrl 中大图标可以自由拖动位置?? 在VC中怎么使用STL? 怎样用SendMessage函数向窗口发一个组合键消息(如Alt + Shift + F)?
ShellExecuteEx
WinExec("A.exe",SW_SHOW);
hWnd = FindWindow();//得到程序A的窗口句柄
dwThreadId = GetWindowThreadProcessId(hWnd,NULL);
SetHook(dwThreadId);
PostMessage(hWnd,WM_NULL,0,0);程序B的主要代码如下:__declspec(dllimport) BOOL WINAPI SetHook(DWORD dwThreadId);//需要倒出该函数
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
if(ul_reason_for_call == DLL_PROCESS_ATTACH)
{
g_hinstDll = (HINSTANCE)hModule ;
}
return TRUE;
}
BOOL WINAPI SetHook(DWORD dwThreadId)
{
hHook = SetWindowsHookEx (WH_CALLWNDPROC,CallWndProc,g_hinstDll,dwThreadId);
}
LRESULT WINAPI CallWndProc(int nCode,WPARAM wParam,LPARAM lParam)
{
MSG * pmsg = (MSG*)lParam;
DWORD dwThreadId;
if(pmsg->message==WM_COMMAND&&pmsg->wParam==ID_BUTTON)
{ //要执行的代码
}
return (CallNextHookEx(hHook,nCode,wParam,lParam));
}