无法向某些窗口发送模拟键盘鼠标消息的问题

一些情况下,我们可以通过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即可。


  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值