Delphi如发送到KEmulator模拟器中后台点击。
如题,用Spy++获取到类SWT_Window0。可是用sendmesssage命令无法实现。求高手给个帮助....
如题,用Spy++获取到类SWT_Window0。可是用sendmesssage命令无法实现。求高手给个帮助.
展开
2个回答
展开全部
首先你确定你得到的窗口是KEmulator的窗口?且窗口的句柄没有问题?如果SendMessage不行的话,你可以试一试PostMessage。
另外如果你需要模拟鼠标的点击或者键盘的动作话。可以直接使用Windows API 函数 mouse_event与SendInput。这两个函数的说明百度百科上就有。你可以尝试一下直接使用这两个函数。
另外如果你需要模拟鼠标的点击或者键盘的动作话。可以直接使用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,我确实不太清楚。但是用上面的方法基本上可以模拟鼠标的点击了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询