hur.cn - 华软网

 热门搜索

后台模拟鼠标操作窗口!

  作者:未知    来源:网络    更新时间:2011/9/19
 我要对一个后台游戏窗口模拟鼠标操作 不用帮我写代码 告诉我怎么解决就可以!

窗口用postmassge 发送keydown 能够执行

但是用posetmassge发送lbuttondown就不执行 

 请高手指点  谢谢

qq: 1005839403   有酬谢 !
spy++中单击鼠标时候的消息
<00839> 000507CA S WM_SETCURSOR hwnd:000507CA nHittest:HTCLIENT wMouseMsg:WM_LBUTTONDOWN [wParam:000507CA lParam:02010001]
<00840> 000507CA R WM_SETCURSOR fHaltProcessing:True [lResult:00000001]
<00841> 000507CA P WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:519 yPos:408 [wParam:00000001 lParam:01980207 time:1:03:11.822 point:(1093, 558)]
<00842> 000507CA P WM_SETCURSOR hwnd:000507CA nHittest:HTCLIENT wMouseMsg:0000 [wParam:000507CA lParam:00000001 time:1:03:11.853 point:(1093, 558)]
<00843> 000507CA P WM_SETCURSOR hwnd:000507CA nHittest:HTCLIENT wMouseMsg:0000 [wParam:000507CA lParam:00000001 time:1:03:11.869 point:(1093, 558)]
<00844> 000507CA P WM_LBUTTONUP fwKeys:0000 xPos:519 yPos:408 [wParam:00000000 lParam:01980207 time:1:03:11.900 point:(1093, 558)]
<00845> 000507CA S WM_SETCURSOR hwnd:000507CA nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE [wParam:000507CA lParam:02000001]
<00846> 000507CA R WM_SETCURSOR fHaltProcessing:True [lResult:00000001]
<00847> 000507CA P WM_MOUSEMOVE fwKeys:0000 xPos:519 yPos:408 [wParam:00000000 lParam:01980207 time:1:03:11.900 point:(1093, 558)]
<00848> 000507CA P WM_SETCURSOR hwnd:000507CA nHittest:HTCLIENT wMouseMsg:0000 [wParam:000507CA lParam:00000001 time:1:03:11.931 point:(1093, 558)]
---华软 网友回答---
先自己顶下 如果我在线可以给我发短信
我的电话是15041893416
有酬谢!
---华软网友回复---
鼠标移到目的位置了没有?然后除了发down还要发up消息。有些事件是在up中写的。

---华软网友回复---
我都发过了 
给你看下我的发的代码
HWND hwnd=::FindWindow(NULL,gameCaption);

if (hwnd==NULL)
{
MessageBox("获取句柄失败");
}
int lparam;
lparam=(Y<<16)+X;
    ::PostMessage(hwnd,WM_MOUSEMOVE, MK_LBUTTON, MAKELONG(X,Y)); 
    ::PostMessage(hwnd,WM_LBUTTONDOWN,MK_LBUTTON,MAKELPARAM(X,Y)); 
    ::PostMessage(hwnd,WM_LBUTTONUP,MK_LBUTTON,MAKELPARAM(X,Y)); 
代码本身没什么问题好像!
我在其他窗口实验了 能执行!
---华软网友回复---
如果代码在其他窗口能执行有可能的原因是游戏本身的。

确定一下你这个窗口的句柄是不是就是接受鼠标消息的窗口,比如,这个窗口是个父窗口,里面嵌了个子窗口来接受消息。

---华软网友回复---
我告诉你我在做的是鹿鼎记的辅助工具
就一个窗口 没有子窗口  !
帮我解决的 我给他冲300元电话费 虽然不多 就是希望大家帮们费心看看是怎么回事
以前我没遇过 谢谢各位!

---华软网友回复---
其实还有个办法就是写CALL 
但是那样的话程序维护起来有点发麻,主要我找CALL 很慢!

---华软网友回复---
1: 先确定下窗口的handle是否正确?
2:鼠标消息被拦截了 ?
---华软网友回复---
可能发送了,但接受的窗口变化了
---华软网友回复---
1: 先确定下窗口的handle是否正确?
2:鼠标消息被拦截了 ?
我用HOOK 是可以接受到我发的信息 应该是没被拦截

能告诉下怎么判断窗口handle是否正确吗?

---华软网友回复---
是能接受到lbuttonDown 但是不能接受到坐标信息
---华软网友回复---
可能发送了,但接受的窗口变化了 

发送是肯定发送了我做了postmeassge KeyKown是成功了执行了
但是发送lbuttonDown就没反应了
如何确定窗口变化 不太懂 指教下
---华软网友回复---
HWND hwnd=::FindWindow(NULL,gameCaption);

if (hwnd==NULL)
{
MessageBox("获取句柄失败");
}
int lparam;
lparam=(Y<<16)+X;
  ::PostMessage(hwnd,WM_MOUSEMOVE, MK_LBUTTON, MAKELONG(X,Y)); 
  ::PostMessage(hwnd,WM_LBUTTONDOWN,MK_LBUTTON,MAKELPARAM(X,Y)); 
  ::PostMessage(hwnd,WM_LBUTTONUP,MK_LBUTTON,MAKELPARAM(X,Y)); 
///////////////////////再加个PostMessage,试下///////////////////////// 
  ::PostMessage(hwnd,WM_LBUTTONDOWN,MK_LBUTTON,MAKELPARAM(X,Y)); 
  ::PostMessage(hwnd,WM_LBUTTONUP,MK_LBUTTON,MAKELPARAM(X,Y));  
---华软网友回复---
不行的 我早实验过了 呵呵
可能是窗口对鼠标的消息出来和普通的窗口有所不同吧
希望高手继续指点
---华软网友回复---
那位高手给点提示啊
谢谢了      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。