如何往打开的dos窗口里输入信息?

zolen 2005-07-04 12:55:58
我的程序要在后台调用一个dos程序,这个dos程序在运行的时候需要输入一个密码,然后回车才能继续。我原来是先把这个dos窗口隐藏shell出来,然后把它BringWindowToTop变成当前窗口,用keybd_event发送键盘码来完成的。
上面的情况只要客户不在1、2秒内用鼠标点击其它东西,一般都能顺利完成。可问题是一旦点击了其它窗口,使我这个隐藏的dos窗口不再是当前窗口了,那就不行了。所以我目前弄的方法,绝对不是可靠的方法。(虽然我后来采用屏蔽鼠标的做法,呵呵,也不是常规好方法,属于歪门邪道!)

哪位高手能指点一下,如何能可靠的往一个dos窗口里输入信息。即使这个dos窗口是隐藏的,失去焦点了,也能准确无误的接受到信息???

我查了一下网上都是如何从dos窗口获取输出信息的帖子,却没有找到如何准确的往里面输入信息的资料。
...全文
707 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyingZFX 2005-07-07
  • 打赏
  • 举报
回复
我晕。
jxgzay 2005-07-07
  • 打赏
  • 举报
回复
假如你的DOS应用程序是 d:\mydos.exe
假如你要在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

yueyingyouxia 2005-07-07
  • 打赏
  • 举报
回复
把dos窗口设置为焦点,然后模拟鼠标键盘操作,多简单,还省得动脑筋,

这叫一招鲜吃遍天
threenewbee 2005-07-06
  • 打赏
  • 举报
回复
用PostMessage()才能向别的程序发消息!
threenewbee 2005-07-06
  • 打赏
  • 举报
回复
wm_char试试
zolen 2005-07-04
  • 打赏
  • 举报
回复
好像是通过管道来操作,createpipe,writefile来操作。可惜我弄了N次,都不成功
IORI915189 2005-07-04
  • 打赏
  • 举报
回复
没用的,好象很难.
zolen 2005-07-04
  • 打赏
  • 举报
回复
SENDMESSAGE发不进去啊?
SENDMESSAGE,HWND,WM_KEYDOWN ,键盘虚拟码,0&
HWND是用findwindow找到的该dos窗口的句柄
DOS窗口接受不到信息啊。
熊孩子开学喽 2005-07-04
  • 打赏
  • 举报
回复
应该是使用SENDMESSAGE(如果没有记错的话)
zolen 2005-07-04
  • 打赏
  • 举报
回复
up

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧