Delphi如发送到KEmulator模拟器中后台点击。

如题,用Spy++获取到类SWT_Window0。可是用sendmesssage命令无法实现。求高手给个帮助.... 如题,用Spy++获取到类SWT_Window0。可是用sendmesssage命令无法实现。求高手给个帮助. 展开
 我来答
至少让我看一眼
2013-08-04 · TA获得超过451个赞
知道小有建树答主
回答量:188
采纳率:0%
帮助的人:242万
展开全部
首先你确定你得到的窗口是KEmulator的窗口?且窗口的句柄没有问题?如果SendMessage不行的话,你可以试一试PostMessage。
另外如果你需要模拟鼠标的点击或者键盘的动作话。可以直接使用Windows API 函数 mouse_event与SendInput。这两个函数的说明百度百科上就有。你可以尝试一下直接使用这两个函数。
追问
我就是不太确定我得到的是不是模拟器的句柄;还有一个就是那个模拟器是模拟Java的程序,Java的控件id在delphi里能模拟点击吗?顺便求高手给弄个获取KEmulator模拟器的代码。
追答

代码如下:

var
  eWindow: HWND;
begin
  //查找模拟器窗口
  eWindow := FindWindow('SWT_Window0',nil);
  if eWindow <> 0 then
  begin
    //查找模拟器子窗口.
    eWindow := FindWindowEx(eWindow,0,'SWT_Window0',nil);
    //如果模拟器子窗口存在则发送消息
    if eWIndow <> 0 then
    begin
      //将目标窗口置于前台,否则消息可能无法被模拟器处理
      WinApi.Windows.SetForegroundWindow(eWindow);
      //向目标窗口发送一个鼠标左键点击的消息。MakeLong的参数对应的是X,Y轴。
      PostMessage(eWindow,WM_LBUTTONDOWN,0,MAKELONG(182,464));
    end;
  end;
end;

 至于,Java控件的ID,我确实不太清楚。但是用上面的方法基本上可以模拟鼠标的点击了

奇趣博闻天下
2013-08-04 · TA获得超过348个赞
知道小有建树答主
回答量:1062
采纳率:0%
帮助的人:318万
展开全部
找到窗口以后还得找到具体的句柄
追问
用SPY++显示四个类相同,不知道该给那个类发送。
追答
只能挨个测试啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式