如何在应用程序内调用可执行文件,而且等待此应用程序的结束,或者能知道此应用程序何时结束?如何获得DOS控制台程序的输出内容??谢谢!

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/620/620694.xml?temp=.9632685
      

  2.   

    1)调用shellexecute来启动可执行文件,然后即活定时期,用findwindow函数检测程序是否关闭
    2)用管道做
    http://expert.csdn.net/Expert/topic/1784/1784336.xml?temp=.2661249
      

  3.   

    Function WinExecExW(cmd,workdir:pchar;visiable:integer):DWORD; 
    varStartupInfo:TStartupInfo;ProcessInfo:TProcessInformation;beginFillChar(StartupInfo,SizeOf(StartupInfo),#0);StartupInfo.cb:=SizeOf(StartupInfo);StartupInfo.dwFlags:=STARTF_USESHOWWINDOW;StartupInfo.wShowWindow:=visiable;if not CreateProcess(nil,cmd,nil,nil,false,Create_new_console or Normal_priority_class,nil,nil,StartupInfo,ProcessInfo) thenresult:=0elsebeginwaitforsingleobject(processinfo.hProcess,INFINITE);GetExitCodeProcess(ProcessInfo.hProcess,Result);end;end; 
     
      

  4.   

    ShellExecute(handle, nil, Pchar(exeFileName), nil, nil, sw_shownormal); 调用16 位程序,可采用winexec
    对于32位,的采用CreateProcess, 一般推荐采用ShellExecute 
      

  5.   

    用createprocess,作成目标程序调试器!判断这个目标进程的结束断点就可以了!