给其他进程发送鼠标双击消息怎么不行?下面是我的代码HWND hwnd = GetProcessMainWnd(4772);//获取进程号4772的句柄
CWnd::FromHandle(hwnd)->SetForegroundWindow(); //4772置放到最前端
CWnd::FromHandle(hwnd)->SetFocus();while(1)
{
Sleep(5*1000);
CWnd::FromHandle(hwnd)->SetFocus();
SetCursorPos(780,240); //移动鼠标到 (780,240)
PostMessage(hwnd, WM_KEYDOWN, VK_F9, 0); //发送F9消息,这个消息接收到了
//Sleep(10);
PostMessage(hwnd, WM_LBUTTONDBLCLK, 0,0);//双击消息,这个没反应!!!!!!!!
}
CWnd::FromHandle(hwnd)->SetForegroundWindow(); //4772置放到最前端
CWnd::FromHandle(hwnd)->SetFocus();while(1)
{
Sleep(5*1000);
CWnd::FromHandle(hwnd)->SetFocus();
SetCursorPos(780,240); //移动鼠标到 (780,240)
PostMessage(hwnd, WM_KEYDOWN, VK_F9, 0); //发送F9消息,这个消息接收到了
//Sleep(10);
PostMessage(hwnd, WM_LBUTTONDBLCLK, 0,0);//双击消息,这个没反应!!!!!!!!
}
是不是0,0 要改成坐标参数?这个参数怎么写?
===========
这个消息发过去时的位置由最后的参数决定,你发个0过去,对方收到的消息指定的位置在(0,0)处,并不是你前面用SetCursorPos(780,240); 指定了位置,对方程序就按你指定的来解析,对方程序收到消息时对消息的解析是看消息附带的参数的。
int i = 0;
int x = 780;
int y = 240; vector<HWND> vecHwnd;
vecHwnd.push_back(hwnd); HWND chldWnd = ::FindWindowEx(hwnd, NULL, NULL, NULL);
while( NULL != chldWnd)
{
vecHwnd.push_back(chldWnd);
chldWnd = ::FindWindowEx(hwnd, chldWnd, NULL, NULL);
}
i = vecHwnd.size();
CWnd * tmp;
while(1)
{
SetCursorPos(x,y);
for(i=0; i<vecHwnd.size(); ++i)
{
Sleep(2000);
tmp = CWnd::FromHandle(vecHwnd[i]);
tmp->SetForegroundWindow();
tmp->SetActiveWindow();
//tmp->SetFocus();
PostMessage(vecHwnd[i], WM_LBUTTONDBLCLK, MAKEWORD(x, y), MAKELONG(x, y)); PostMessage(vecHwnd[i], WM_KEYDOWN, 30, 0);
}
Sleep(5*1000);
}真是见鬼,还是没用啊,每个handle都去发都没用!崩溃了,MFC咋这么难搞啊
方便的话把你的目标程序和要实现的功能给我写过需求发我邮箱
我研究研究
[email protected]
Call PostMessage(Wtxd_hwnd, WM_LBUTTONUP, 1, ByVal 0)
哈哈.这样可以哦
收到,多谢!回去再去研究研究spy++是个好东西,以前没写过什么vc程序!