永发信息网

VB Postmessage发送字符串问题

答案:2  悬赏:30  手机版
解决时间 2021-03-11 02:11
偶尔玩一下网络游戏,为了方便 就想用VB 做一个简单的打怪辅助工具。
现在的问题是:
Postmessage往游戏窗口(已知句柄)发送按键消息时 没有反映。 但是对文本窗口是有效的。
这个问题是出在哪里呢?
用VB写的
游戏是 天龙八部
最佳答案
任何应用程序(包括背景)发送的任何关键信息(包括普通字符键,功能键,按住Shift键/控制/ Alt键加任意组合按键的键)来自动执行特定的功能,是一种用途很广,功能很实用价值,很多人都被困在此,很难理解,我也遇到过这方面的需求,并封锁。开始查了很多的信息化解决方案和互联网用户,一些可以发挥作用,但也有许多程序的测试证明行不通的。发送移位/控制/ Alt加任何的按键组合没有找到一个可行的解决方案,例如,下面的代码就不会被发送到指定的窗口(HWND)按Ctrl + C:
PostMessage的HWND,WM_KEYDOWN WM_KEYDOWN ,VK_C H002E0001“按C键的
PostMessage的HWND VK_CONTROL,H001D0001”的按下Ctrl键
PostMessage的HWND WM_KEYUP,VK_C和HC02E0001释放C键
PostMessage的HWND WM_KEYUP VK_CONTROL, HC01D0001“释放Ctrl键
上面的例子中,只能发送一个小写字母c。
下面的代码可以模拟Ctrl + C键,但它不能被发送到指定窗口的背景:
keybd_event VK_Ctrl,0,0,0'按下Ctrl键
的keybd_event VK_C的,0 0,0,按C键
keybd_event VK_C,0,KEYEVENTF_KEYUP,“C键
keybd_event VK_Ctrl 0,KEYEVENTF_KEYUP释放,释放Ctrl键
有真的没有办法解决这个问题的方式吗?我觉得应该这样做!后来,经过反复的Windows消息机制和键盘输入系统调用数据,终于找到了一个解决方案,并成功地展示了测试。自己一度被困在这里,得到最终的解决方案,而不是排斥的,现在来了,同样需要将大部分这方面的需求的朋友,而且这个问题已不再是少数“大师”的独家秘籍。
任何应用程序窗口发送模拟的关键,必须先获得输入焦点,要接收的关键不需要激活该应用程序的窗口句柄,以便使用Windows API的查找窗口FindWindowEx,首先FindWindow顶部的应用程序(顶层)的窗口句柄,然后使用FindWindowEx得到你想要领取钥匙的子窗口或控制的句柄,因为顶层窗口的应用程序不一定是关键的是接受窗口(如记事本。exe“的记事本程序实际收到的”关键点“窗口是主窗口中的”记事本“编辑控制)的ClassID或Caption找到。已经取得了假设的目标窗口句柄(HWND),窗口,然后使用PostMessage发送消息的普通字符键直接最简单的WM_CHAR消息如下:
PostMessage的HWND,WM_CHAR,ASC(“A”;),0'字符
发送的非普通字符键如功能键,箭头键使用WM_KEYDOWN,WM_KEYUP消息如下:
PostMessage的hWndMsg WM_KEYDOWN,VK_ESCAPE&H00010001'模拟按下Esc键
的PostMessage的hWndMsg的WM_KEYUP,VK_ESCAPE HC0010001模拟电梯Esc键
最后一个参数(LPARAM)低16位(0001)表示,按键高8位00表示,C0被解除,第二个最高(01个)的扫描码键,可以使用API?? MapVirtualKey( VirtualKey,0),得到(注:在每个系统中的扫描码可能会有所不同,在这个特定的数值例子,在实际应用中MapVirtualKey)。
下一个点偏移/控制/ ALT修饰键与其他键组合如何发送,使用下面的方法(使用Shift和Control API keybd_event):
keybd_event VK_SHIFT,H2A,0,0'模拟按下SHIFT键,与H2A是扫描码VK_SHIFT BR /> PostMessage的hWndMsg,WM_KEYDOWN,VK_A,及H001E0001的模拟按下A键,SHIFT + A产生一个大写的A字
的PostMessage的hWndMsg的WM_KEYUP,VK_A HC01E0001的模拟提起的一个关键
keybd_event VK_SHIFT&H2A,KEYEVENTF_KEYUP,0'模拟电梯的SHIFT键
(扫描码2A)替换上述VK_SHIFT VK_CONTROL(扫描1D)Ctrl键组合,可以实现VK_A(扫描代码1E)可以替换为任何功能键,如VK_F4(扫描代码3E)。
ALT修饰键特殊,它是一个系统的关键使用WM_SYSKEYDOWN / WM_SYSKEYUP消息,如下:
PostMessage的hWndMsg,WM_SYSKEYDOWN,VK_F4和H003E0001或&H20000000'模拟按Alt + F4
PostMessage的hWndMsg,WM_SYSKEYUP,VK_F4,与HC03E0001或&H20000000'模拟电梯ALT + F4
'&H20000000范围内的码位,设置Alt键被按下 / a>
在这一点上,你就大功告成了!我希望你快乐!
全部回答
你对游戏窗口发送字符串是没有用的,得发送按键消息,用sendmessage函数
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
禾田养生农庄地址在哪,我要去那里办事
西式葬礼的具体形式是??
祥字五行
在文化的结构中,一辆马车是
我们全班同学在讨论并听取班主任的报告后,立
龙腾世纪3审判origin没有安装报错怎么办
哪些花散发幽香
王源的邦尼兔什么颜色?
北方润滑油商店地址有知道的么?有点事想过去
以下是某汽车维修公司发生的一些业务,要求1.
非洲黑檀家具质量如何
吉林弘盛在哪里啊,我有事要去这个地方
深圳的ETC可以在重庆哪里充值
iPhone 5s电池电量忽高忽低
为什么吃海鲜会过敏
推荐资讯
锦绣华天(东北门)在什么地方啊,我要过去处理
下列有关免疫的叙述,不正确的是DA. 通过免疫
相思树下许生死,不惧芳华刹那是什么意思
0.1 1.2 3.4 6.7________()
信用卡账单余额不足实扣是什么意思
货车资格证怎么办理我是成都的驾照,资阳的户
为什么我感觉我fgo里的黑贞德伤害这么低?等
快乐时光儿童摄影我想知道这个在什么地方
战斗过程中是用文字叙述的单机小游戏
碘元素是人体必需的常量元素.这句话是否正确
某商场有一部自动扶梯匀速由下而上运动,甲,
下列不属于劳动力市场具有的特征的是()。A.
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?