用ShellExecute打开一个控制台程序后,怎样将这个控制台程序关闭??请高人指教!!
解决方案 »
- 【求助】Delphi 多线程 出错,
- Delphi链接数据库问题
- resource kept;这是什么错误
- 怎么通过程序锁定EXCEL某个单元格
- 小弟我刚接触Delphi,各位大虾给点指点意见!!!谢谢捧场!!!
- 100 请教 !!! 程序运行时,动态增加组件,设置可以保存
- 有没有像CAD一样的画矢量图的VCL,急用!!
- 怎样查看系统信息?
- hint问题、在线等
- 急·!急!,请各高手赐教!!!!如何固定DBGrid控件的第一列(如同StringGrid的fixedcols=1)??????
- 为什么我的label控件显示的时候有些文字显示不了!
- 请问各位一个关于连接局域网的问题!!100分送上!!
如果不要交互不显示就行了
ShellExecute(Handle, 'open', 'xxx.bat', nil, nil, SW_HIDE);
不显示的话还是要占用资源的!
这个控制台程序正常运行完毕会自动关闭。
现在想在不能正常运行时由DELPHI来关闭它!
procedure closecmd;
var
lppe: TProcessEntry32;
snapshothandle:THandle;
f:boolean;
pid:DWord;
begin
ProcessName:='Cmd.exe' \\区分大小写
snapshothandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); \\创建进程快照
lppe.dwSize:=Sizeof(lppe);
f:=Process32First(snapshothandle,lppe);
While f do
begin
if ProcessName=StrPas(lppe.szExeFile) then
pid:= lppe.th32ProcessID;
f:= Process32Next(snapshothandle,lppe);
end;
CloseHandle(snapshothandle);
TerminateProcess(OpenProcess(Process_Terminate,false,pid),0);
end;