如何程序控制关闭一个Dos程序?(100分)

  • 主题发起人 主题发起人 delphi_zm
  • 开始时间 开始时间
D

delphi_zm

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾帮帮忙!我在程序中用Winexec调用了一个外部的dos程序,却无法用sendmessage关闭该dos程序
 
DOS程序也有窗口,
用winapi
先用FindWindow找到窗口名柄,
将WM_QUIT 发给它就可。
 
可惜,FindWindow找不到该窗口的句柄
 
不要用WinExec运行它,而用CreateProcess运行它,能得到
它的进程句柄(hProcess),关闭该进程时用
TerminateProcess杀之。
 
可通过修改Windows 的Dos 方式的属性解决该问题,在运行完Dos 程序后自动关闭
Dos窗口.这样就不用劳神自己关闭它了!

右键点击Command.com文件--->属性--->程序--->选中"退出时关闭"选项.
 
我倒... 这种解决方法:-(
 
默认的dos窗口就是结束时关闭牙!
 
DOS窗口的classname不就是"tty"吗?可以找到该窗口句柄的.
lret:=FindWindow('tty', 'MS-DOS 方式');
SendMessage(lRet, WM_CLOSE, 0, 0)
 
我用我的方法确实把dos窗口关闭了呀!怎么不行吗?
 
类是“tty”吗?

我的环境是nt,控制台窗口类是“ConsoleWindowClass”
 
我的机器是98,类是"tty",不过简单的判断一下不就可以了. :-)
 
谢谢大家
 
后退
顶部