一个简单的问题(100分)

  • 主题发起人 主题发起人 qxgwzx
  • 开始时间 开始时间
Q

qxgwzx

Unregistered / Unconfirmed
GUEST, unregistred user!
各位,为什么我用Winexec启动某个dos程序后,就再也不能用Winexec继续调用该
dos程序的内部命令了呢(这些内部命令在MS-DOS状态下不可见)?
我看了前面有关调用Dos程序的讨论,其中大多谈到了子进程、管道和重定向的
概念(大家见笑了,这些概念我还不是很清楚)。
请问,如果要继续调用该DOS程序的内部命令,是否一定要用子进程和管道、重定向呢?

先谢谢了。
 
先把要输入的命令 发送一个wm_paste消息给DOS窗口
再发送一个wm_keydown vk_return就可以了,
或者 winexec('start 内部命令>nul',sw_hide);
 

生成一个批处理文件,再执行它看看
 
影子兄,如果搞成批处理,那启不是失去意义了?
 
"该dos程序的内部命令"是什么意思?你应该在Winexec中就加入命令行参数。
 
To zw84611:
我所说的“该dos程序的内部命令”并不是一般的命令参数。
比如:在DOS命令行状态下,我输入AAA.exe命令,进入一个汇编编译环境 。在这个环境
中,可以用BBB命令对源代码进行编译。我现在用Winexec()函数可以控制AAA.exe,
却不能控制BBB命令。请问我可以用Winexec()控制BBB吗?

谢谢。
 
BBB不是一个单独的进程,而只是AAA的一个功能,你当然不能用Winexec控制了。
 
哦,果然牵涉到进程的概念。
zw84611,如果你有时间,能否介绍相关的书籍或给我一个相对具体的代码呢?
冒昧请求,不好意思。
再次感谢你对我的帮助。
 
没必要搞那么复杂,抱歉,你要想实现的功能我不会。
不过如果BBB也是通过运行其他编译程序实现的,你不妨直接调用该编译程序,
比如在Delphi中,编译实际上是用DCC32.exe做的,你直接运行DCC32.exe就能编译Delphi工程。
 
谢谢各位的帮助!
 
多人接受答案了。
 
后退
顶部