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
展开
 我来答
网海1书生
科技发烧友

2012-09-29 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
你把一个很简单的问题弄得忒复杂了,根本不需要keybd_event的,看我下面的代码多简单:

Private Sub Command1_Click()
Text1.SetFocus
SendKeys "{end}^ {backspace 5}nihaoma ", True
DoEvents
SendKeys "^ ", True
End Sub

所有要打的字符可以放在同一个sendkeys命令中的。最后把汉字放入文本框的空格可以直接用sendkeys命令发送的,你干吗要用keybd_event?最后那行的"^ "是为了关闭输入法(我是用Ctrl+空格来开关输入法的)。
chenzh98
2012-09-29 · TA获得超过393个赞
知道小有建树答主
回答量:406
采纳率:0%
帮助的人:179万
展开全部
应该在SendKeys ("{a}")后面加一句SendKeys ("{space}")或SendKeys ("{enter}"),因为中文输入法在你打完拼音以后,是需要按空格或回车确认候选词的。除非你用五笔之类的无重码输入法,可以在输完编码后自动上词,不用确认。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哀杰藏香卉
2019-01-22 · TA获得超过4037个赞
知道大有可为答主
回答量:3132
采纳率:30%
帮助的人:464万
展开全部
小键盘的数字和左边键盘的数字的扫描码是不一样的
VB做钩子不好做
建议用c++做
VB来调用就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
十六夜里的水田
2012-09-29 · TA获得超过1829个赞
知道小有建树答主
回答量:763
采纳率:0%
帮助的人:520万
展开全部
直接SendKeys "你好吗"不就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式