System.Diagnostics.Process myProcess = new System.Diagnostics.Process();myProcess.StartInfo.filename = "notepad.exe";myProcess.EnableRaisingEvents = true;myProcess.Exited += new System.EventHandler(Process_OnExit);myProcess.Start();public voID Process_OnExit(object sender,EventArgs e){ //Do something when the process ends}
我对Delphi了解不多,所以任何帮助都会受到赞赏,谢谢.
解决方法 是的,你可以用Delphi做类似的事情.我还没有看到使用事件处理程序,但您可以创建一个进程,等待它完成,然后在发生这种情况时执行某些 *** 作.如果你想在同一时间做某事,把它放在另一个线程中.这里有一些代码用于创建一个进程并等待我从网上删除:
procedure ExecNewProcess(Programname : String; Wait: Boolean);var StartInfo : TStartupInfo; ProcInfo : TProcessinformation; CreateOK : Boolean;begin { fill with kNown state } FillChar(StartInfo,SizeOf(TStartupInfo),0); FillChar(ProcInfo,SizeOf(TProcessinformation),0); StartInfo.cb := SizeOf(TStartupInfo); CreateOK := CreateProcess(nil,PChar(Programname),nil,False,CREATE_NEW_PROCESS_GROUP or norMAL_PRIORITY_CLASS,StartInfo,ProcInfo); { check to see if successful } if CreateOK then begin //may or may not be needed. Usually wait for child processes if Wait then WaitForSingleObject(ProcInfo.hProcess,INFINITE); end else begin //ShowMessage('Unable to run '+Programname); SysErrorMessage(GetLastError()); end; CloseHandle(ProcInfo.hProcess); CloseHandle(ProcInfo.hThread);end;总结
以上是内存溢出为你收集整理的delphi – 启动进程并侦听退出事件全部内容,希望文章能够帮你解决delphi – 启动进程并侦听退出事件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)