用ShellExecute打开一个控制台程序后,怎样将这个控制台程序关闭??请高人指教!!

解决方案 »

  1.   

    调用哪个函数可以在DELPHI中关闭控制台程序??
      

  2.   

    你的控制台程序要和用户交互吗?
    如果不要交互不显示就行了   
    ShellExecute(Handle, 'open', 'xxx.bat', nil, nil, SW_HIDE);
      

  3.   

    我想让它从内存中释放掉,因为要反复运行它N次!点一次按钮就运行一次。
    不显示的话还是要占用资源的!
    这个控制台程序正常运行完毕会自动关闭。
    现在想在不能正常运行时由DELPHI来关闭它!
      

  4.   

    找到CMD.EXE 的进程.杀死进程既可,代码如下;
    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;