VB中用keybd_event模拟按键的问题,急!!!!!!!
我想做一个程序,点击command的时候会自己打出“你好吗”三个字。不过每次输出都只是把拼音打出之后就没任何反应了,就算是在英语情况下也是如此。求解。。PrivateDe...
我想做一个程序,点击command的时候会自己打出“你好吗”三个字。不过每次输出
都只是把拼音打出之后就没任何反应了,就算是在英语情况下也是如此。求解。。
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal Scan As Byte, ByValdwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)
Private Sub command1_Click()
Text1.SetFocus
SendKeys ("^+")
SendKeys ("{backspace}")
SendKeys ("{backspace}")
SendKeys ("{backspace}")
SendKeys ("{backspace}")
SendKeys ("{backspace}")
Sleep (1000)
SendKeys ("{n}")
SendKeys ("{i}")
SendKeys ("{h}")
SendKeys ("{a}")
SendKeys ("{o}")
SendKeys ("{m}")
SendKeys ("{a}")
Sleep (1000)
DoEvents
keybd_event vbkeyspace,0,0,0
keybd_event vbKey2, 0, 0, 0
End Sub 展开
都只是把拼音打出之后就没任何反应了,就算是在英语情况下也是如此。求解。。
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal Scan As Byte, ByValdwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)
Private Sub command1_Click()
Text1.SetFocus
SendKeys ("^+")
SendKeys ("{backspace}")
SendKeys ("{backspace}")
SendKeys ("{backspace}")
SendKeys ("{backspace}")
SendKeys ("{backspace}")
Sleep (1000)
SendKeys ("{n}")
SendKeys ("{i}")
SendKeys ("{h}")
SendKeys ("{a}")
SendKeys ("{o}")
SendKeys ("{m}")
SendKeys ("{a}")
Sleep (1000)
DoEvents
keybd_event vbkeyspace,0,0,0
keybd_event vbKey2, 0, 0, 0
End Sub 展开
4个回答
展开全部
你把一个很简单的问题弄得忒复杂了,根本不需要keybd_event的,看我下面的代码多简单:
Private Sub Command1_Click()
Text1.SetFocus
SendKeys "{end}^ {backspace 5}nihaoma ", True
DoEvents
SendKeys "^ ", True
End Sub
所有要打的字符可以放在同一个sendkeys命令中的。最后把汉字放入文本框的空格可以直接用sendkeys命令发送的,你干吗要用keybd_event?最后那行的"^ "是为了关闭输入法(我是用Ctrl+空格来开关输入法的)。
Private Sub Command1_Click()
Text1.SetFocus
SendKeys "{end}^ {backspace 5}nihaoma ", True
DoEvents
SendKeys "^ ", True
End Sub
所有要打的字符可以放在同一个sendkeys命令中的。最后把汉字放入文本框的空格可以直接用sendkeys命令发送的,你干吗要用keybd_event?最后那行的"^ "是为了关闭输入法(我是用Ctrl+空格来开关输入法的)。
展开全部
应该在SendKeys ("{a}")后面加一句SendKeys ("{space}")或SendKeys ("{enter}"),因为中文输入法在你打完拼音以后,是需要按空格或回车确认候选词的。除非你用五笔之类的无重码输入法,可以在输完编码后自动上词,不用确认。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
小键盘的数字和左边键盘的数字的扫描码是不一样的
VB做钩子不好做
建议用c++做
VB来调用就可以了
VB做钩子不好做
建议用c++做
VB来调用就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接SendKeys "你好吗"不就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询