我的程序要在后台调用一个dos程序,这个dos程序在运行的时候需要输入一个密码,然后回车才能继续。我原来是先把这个dos窗口隐藏shell出来,然后把它BringWindowToTop变成当前窗口,用keybd_event发送键盘码来完成的。
上面的情况只要客户不在1、2秒内用鼠标点击其它东西,一般都能顺利完成。可问题是一旦点击了其它窗口,使我这个隐藏的dos窗口不再是当前窗口了,那就不行了。所以我目前弄的方法,绝对不是可靠的方法。(虽然我后来采用屏蔽鼠标的做法,呵呵,也不是常规好方法,属于歪门邪道!)哪位高手能指点一下,如何能可靠的往一个dos窗口里输入信息。即使这个dos窗口是隐藏的,失去焦点了,也能准确无误的接受到信息???我查了一下网上都是如何从dos窗口获取输出信息的帖子,却没有找到如何准确的往里面输入信息的资料。
上面的情况只要客户不在1、2秒内用鼠标点击其它东西,一般都能顺利完成。可问题是一旦点击了其它窗口,使我这个隐藏的dos窗口不再是当前窗口了,那就不行了。所以我目前弄的方法,绝对不是可靠的方法。(虽然我后来采用屏蔽鼠标的做法,呵呵,也不是常规好方法,属于歪门邪道!)哪位高手能指点一下,如何能可靠的往一个dos窗口里输入信息。即使这个dos窗口是隐藏的,失去焦点了,也能准确无误的接受到信息???我查了一下网上都是如何从dos窗口获取输出信息的帖子,却没有找到如何准确的往里面输入信息的资料。
SENDMESSAGE,HWND,WM_KEYDOWN ,键盘虚拟码,0&
HWND是用findwindow找到的该dos窗口的句柄
DOS窗口接受不到信息啊。
假如你要在mydos.exe运行时输入用户名:user1
回车后在输入密码:password1
那么方法如下:1、建立一个文本文件mytext.txt,内容是要送到DOS窗口的内容,
user1
pawword1
2、建立一个批处理文件mybat.bat (注意“ < ”的前后都有空格)
d:\mydos < mytext.txt
3、按钮代码:
Private Sub Command1_Click()shell app.path & "\mybat.bat",vbHide
End Sub