为什么VB调用sendmessage(postmessage)时只有部分按键成功?

为什么VB调用sendmessage(postmessage)时只有部分按键成功?调用这两个函数发送TAB是能成功,但是发送F1,1,A这些按键时窗口就没反应。Public Const WM_KEYDOWN = &H100Public Const WM_KEYUP = &H101Public Const VK_TAB = &H9Public Const VK_F1 = &H70Public Const VK_F2 = &H71Call PostMessage(hwd, WM_KEYDOWN, VK_TAB, 0)Sleep 300Call PostMessage(hwd, WM_KEYUP, VK_TAB, 0)Sleep 5000 Call PostMessage(hwd, WM_KEYDOWN, VK_F2, 0) Sleep 100 Call PostMessage(hwd, WM_KEYUP, VK_F2, 0) Sleep 1000

我也遇到过这个问题 , 楼主是想在游戏中实现后台按键吧,呵呵,我试过很多游戏了,都只有TAB可以按出来,其他的都没有反应,据说是游戏封了后台按键
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-20
用sendmessage试试 send有返回
post不用返回

VB Postmessage发送字符串问题
任何应用程序(包括背景)发送的任何关键信息(包括普通字符键,功能键,按住Shift键\/控制\/ Alt键加任意组合按键的键)来自动执行特定的功能,是一种用途很广,功能很实用价值,很多人都被困在此,很难理解,我也遇到过这方面的需求,并封锁。开始查了很多的信息化解决方案和互联网用户,一些可以发挥作用...

VB PostMessage或者SendMessage怎么发送一个组合键?
这个问题一开始也困扰了我好几个月,后来终于解决了,怪自己笨。搜索了很多资料,没找到解决方案,我的解决办法是:由于ctrl是公共的,无所谓窗口激活不激活,所以采用keybd_event先给他按住,然后再对某窗口句柄发送第二个键即可。当然,最后得松开它。

关于PostMessage或者SendMessage发送ctrl组合按键的问题
PostMessage(AppWnd,WM_KEYUP,VK_CONTROL,MapVirtualKey(VK_CONTROL,0))这四句运行不正常,ctrl不起作用。也就是说,CTRL C并没有启到copy的作用,或者说,这四句话没有实现向计算器发送ctrl + c的按键消息我不知道问题出在哪里,所有的按键,比如数字、字母,甚至F1-F12都可以成功发送唯独组合了ctrl或者shift还有alt...

VB 后台 模拟按键 求助
首先这个肯定要使用API函数了,初步涉及3个。PostMessage 'SendMessage 'GetWindow( m_LocalWnd, GW_CHILD),这个API的功能可以百度查查详细的,这就不细说了。下面简单引用一下。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的...

谁能告诉我VC中SendMessage(),第一次发送消息成功,第二次,和以后都失败...
::SendMessage(HWND_BROADCAST, ,WM_LBUTTONDOWN, 0, lparam);广播的话应该是这样的。但是不需要广播的啊,你发送的消息是给gameh的。。。我也不清楚

请问postmessage(sendmessage)向其它窗口发送CTRL+A等组合按键的方法...
我的意思是,也许接受消息的对象不能把一连串消息当成一个消息来处理,形成不了组合键,所以达不到效果 你可以尝试这样(我没试)先发个wm_setfocus消息让对象获得焦点,然后改用keybd_event来发送按键 === Private Const WM_SETFOCUS = &H7 Private Declare Sub keybd_event Lib "user32" (ByVal...

VB Postmessage发送字符串问题
SendMessageByString& Text1.hwnd, WM_SETTEXT, 0, a 由于 postmessage 的处理机制 postmessage 向文本框发送 WM_SETTEXT 是成功不了的 PostMessage 功能:将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回。消息队列里的消息通过调用GetMessage和PeekMessage取得...

VB制作按键精灵那种后台按键工具
这里要注意的是,模拟键盘消息一定要用PostMessage函数才好,用SendMessage是不正确的(因为模拟键盘消 息是不需要返回值的,不然目标程序会没反应),切记切记!PostMessage函数的VB声明如下:Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long...

VB中SendMessage和postmessage的详细用法。
SendMessage : 发送一个消息给操作系统,并且等待操作系统执行完这个消息。postmessage : 发送一个消息给操作系统,不等待操作系统执行完这个消息就立即返回执行下一条语句。 SendMessage 定义:Public Shared Sub SendMessage ( _ ByRef m As Message _ ) SendMessage 调用: Dim m As Message...

vb sendmessage函数问题
Function PostMessage Lib "user32"Alias "PostMessageA"(ByVal hwnd As Long,ByVal wMsg As Long,ByVal wParam As Long,lParam As Any)As Long Const WM_KEYDOWN = &H100 Const WM_KEYUP = &H101 Const WM_CHAR = &H102 Const VK_F1 = &H70Private Sub SendF1()'调用这个过程即可对...

相似回答