VB向一个外部程序发送一条信息(如发送tab键,回车键)

问题:先有1程序A.exe 先用VB写一程序向A发送TAB键,然后在发送Enter键。
怎么实现?
ps:用sendkeys,keybd_event发生ALT+F4 成功,但发送tab键没有效果。网上另有种说话用findwindows 取得程序句柄,然后先这句柄发送按键。但资料非常少?求教各位?

findwindows是wind32的api函数

寻找符合条件的窗体,返回句柄

下面是我我写的向外部程序发送tab键的程序

首先在窗体上添加一个command1 和 一个text1

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const WM_KEYDOWN = &H100

Private Const WM_KEYUP = &H101

Private Const VK_TAB = &H9

Private Sub Command1_Click()
Dim a As Long
a = FindWindow(vbNullString, Text1.Text)
SendMessage a, WM_KEYDOWN, VK_TAB, 0
SendMessage a, WM_KEYUP, VK_TAB, 0

End Sub

说明: 测试时,应先将接受按键消息的程序运行(可后台运行),然后在text1中输入程序窗体名(可程序名)点击command1即可发送tab消息
温馨提示:内容为网友见解,仅供参考
无其他回答

VB向一个外部程序发送一条信息(如发送tab键,回车键)
Dim a As Long a = FindWindow(vbNullString, Text1.Text)SendMessage a, WM_KEYDOWN, VK_TAB, 0 SendMessage a, WM_KEYUP, VK_TAB, 0 End Sub 说明: 测试时,应先将接受按键消息的程序运行(可后台运行),然后在text1中输入程序窗体名(可程序名)点击command1即可发送tab消息 ...

VB向一个外部程序发送一条信息(回车键)
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long...

求VB用向其他程序发送键值的方法!
将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样。语法 SendKeys string[, wait]SendKeys 语句的语法具有以下几个命名参数:部分 描述 string 必需的。字符串表达式,指定要发送的按键消息。Wait 可选的。指定等待方式的 BooleandefBooleanDataType@veendf98.chm 值。如果为 False(缺省...

VB postmessage发送后台Tab
那么最直接的模拟方法就是:直接伪造一个键盘消息发给目标程序。哈哈,这实在是很简单,windows提供了几个这样的API函数可以实现直接向目标程序发送消息的功能,常用的有SendMessage和PostMessage,它们的区别是PostMessage函数直接把消息仍给目标程序就不管了,而SendMessage把消息发出去后,还要等待目标程序返回些什么东西才好。

vb.net 如何操作外部程序?如输入文本..
Thread.Sleep(50)System.Windows.Forms.SendKeys.Send("{tab}")System.Threading.Thread.Sleep(50)System.Windows.Forms.SendKeys.Send("密码")System.Threading.Thread.Sleep(50)System.Windows.Forms.SendKeys.Send("{Enter}")有的时候会出现发送不完全,我也正在寻找更好的方法,多多交流。

VB编写按键程序.
程序翻译 这个脚本的基本思路是定时向记事本发送Ctrl+S这个存盘组合键.第一部分:定义了脚本中需要用到的变量和对象."AutoSaveTime"变量用来设置自动存盘间隔,单位为毫秒,这里设置为5分钟."TXTFileName"变量通过输入框取得你要创建的文本文件名称.第二部分:运行记事本,对于Windows本身提供的程序,比如计算器...

vb中,如何实现回车键就是tab键。回车键等于tab键的快捷方式。。。_百...
KeyAscii = 13 ElseIf KeyAscii = 13 Then KeyAscii = 9 End If End Sub运行后就能看到回车键和tab键互换了。原理就是该TextBox接收到按键后检测该键码是否为9或者13,如果是的话,将9换成13,13换成9,其他键码不做处理。应用在其他控件上的方法和应用在TextBox上十分类似,依葫芦画瓢!

VB 怎么模拟键盘 输入,包括键盘的每一个健 TAB 也要?
tab是 "{TAB}".===SendKeys 语句 将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样。语法SendKeys string[, wait]SendKeys 语句的语法具有以下几个命名参数:部分 描述 string 必需的。字符串表达式,指定要发送的按键消息。 Wait 可选的。指定等待方式的 BooleandefBooleanDataTyp...

VB怎么用回车代替TAB 来根据TabIndex的顺序来跳转
首先设置窗体的KeyPreview属性为true然后加入以下代码:PrivateSubFrmLogin_KeyPressH,在中实现窗体上回车键代替TAB键,用如下方法:首先设置窗体的KeyPreview属性为true 然后加入以下代码:PrivateSubFrmLogin_KeyPressHandlesMyBase.KeyPress ‘用回车代替Tab Ife.KeyChar=ChrThen e.Handled=True SendKeys.Send...

...窗口发送按键,比如数字,字母和快捷键,要后台的,完整VBS脚本。谢谢...
程序如下:Dim WshShell Set WshShell =CreateObject("Wscript.Shell")WshShell.Run"C:\\Windows\\system32\\notepad.exe"Wscript.Sleep 1000 WshShell.AppActivate "t-记事本"WshShell.SendKeys "{TAB}" '跳格键 WshShell.SendKeys "1234567890abcdefghijklmnopqrstuvwxyz" '数字,字母 WshShell.SendKeys ...

相似回答