无法向某些窗口发送模拟键盘鼠标消息的问题
2014-12-12 12:34
543 查看
一些情况下,我们可以通过postmessage 和sendmessage向指定窗口发送模拟键盘及鼠标消息(像按键精灵一样的效果)。
但是有些游戏窗口我们貌似发送成功了,但是发现游戏压根没反应,这时我们可以用spy++检测指定窗口的消息记录,看看我们的消息是否真的发送已发送成功:
1.如果它能检测到你发的消息,那么可能是你的参数有问题或者消息顺序问题或者延时问题,你得回去仔细检查你的程序了。
2.spy++检测不到,但是参数也没问题,这可能是你发送的消息被拒绝了,可以用getlasterror检查一下返回值,如果返回值是5,说明是拒绝访问。下面就为大家解决这个问题:
(1)以管理员模式运行此程序,(对着应用程序,点击鼠标右键,管理员模式运行),这样就可以发送成功了。但是这种比较费事 !
(2)让生成的exe自动变成管理员模式运行,如果你的编译器是vs2005或者更高,你可以通过直接项目右键---属性---连接器---清单文件---uac执行级别 选择requireAdministrator 重新编译 这样你的程序图标上就有个小盾牌了,直接运行就拥有管理员权限了。
如果是VC++,只需要更改程序的manifest文件
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly
xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security>
<requestedPrivileges> <requestedExecutionLevel level="asInvoker"
uiAccess="false"></requestedExecutionLevel> </requestedPrivileges>
</security> </trustInfo> </assembly>
只要将requestExecutionLevel的level的值改成requiredAdministrator,再重新将这个文件链接入EXE即可。
但是有些游戏窗口我们貌似发送成功了,但是发现游戏压根没反应,这时我们可以用spy++检测指定窗口的消息记录,看看我们的消息是否真的发送已发送成功:
1.如果它能检测到你发的消息,那么可能是你的参数有问题或者消息顺序问题或者延时问题,你得回去仔细检查你的程序了。
2.spy++检测不到,但是参数也没问题,这可能是你发送的消息被拒绝了,可以用getlasterror检查一下返回值,如果返回值是5,说明是拒绝访问。下面就为大家解决这个问题:
(1)以管理员模式运行此程序,(对着应用程序,点击鼠标右键,管理员模式运行),这样就可以发送成功了。但是这种比较费事 !
(2)让生成的exe自动变成管理员模式运行,如果你的编译器是vs2005或者更高,你可以通过直接项目右键---属性---连接器---清单文件---uac执行级别 选择requireAdministrator 重新编译 这样你的程序图标上就有个小盾牌了,直接运行就拥有管理员权限了。
如果是VC++,只需要更改程序的manifest文件
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly
xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security>
<requestedPrivileges> <requestedExecutionLevel level="asInvoker"
uiAccess="false"></requestedExecutionLevel> </requestedPrivileges>
</security> </trustInfo> </assembly>
只要将requestExecutionLevel的level的值改成requiredAdministrator,再重新将这个文件链接入EXE即可。
相关文章推荐
- mfc窗口位置设置,隐藏功能,给其他程序发送虚拟鼠标键盘消息
- TForm.ShowModal只是接管消息循环,禁止外部键盘和鼠标输入到别的窗口,但并不封锁其它窗口继续获取消息(比如WM_TIMER消息仍可被发送到别的窗口上)
- MFC 通过发送消息完成按钮操作模拟鼠标单击事件的发生的问题
- Windows下向指定窗口模拟发送键盘消息
- 向指定窗口发送模拟键盘按键消息
- 模拟向特定窗口或控件发送键盘消息(F1)
- python + selenium webdriver 通过python来模拟鼠标、键盘操作,来解决SWFFileUpload调用系统底层弹出框无法定位问题
- 模拟找到窗口鼠标消息
- 在C#程序中模拟发送键盘按键消息
- 复合窗口的ActiveX控件全屏及键盘消息处理问题 [转]
- 使用AppDelegate单例,解决子视图无法给父视图发送消息的问题
- 跨进程操作CTreeCtrl(模拟鼠标发送双击消息给另一进程CTreeCtrl中指定ITEM)
- 复合窗口的ActiveX控件全屏及键盘消息处理问题
- ubuntu终端退出窗口后不能响应键盘和鼠标的问题
- VC++ 获取窗体句柄,并发送键盘消息(这种方法也可以打开某些应用程序)
- delphi 发送鼠标点击消息到指定窗口
- C++模拟键盘鼠标消息
- 在C#程序中模拟发送键盘按键消息
- Microsoft Office Word 2007 切换窗口后鼠标无法使用问题的解决办法
- Office Word 2007切换窗口后鼠标无法使用问题的解决办法