delphi – 启动进程并侦听退出事件

delphi – 启动进程并侦听退出事件,第1张

概述我有一些代码启动一个进程并挂钩一个事件处理程序来处理进程退出时,我的代码是用C#编写的,我想知道Delphi是否可以实现类似的东西. System.Diagnostics.Process myProcess = new System.Diagnostics.Process();myProcess.StartInfo.FileName = "notepad.exe";myProcess.Enab 我有一些代码启动一个进程并挂钩一个事件处理程序来处理进程退出时,我的代码是用C#编写的,我想知道Delphi是否可以实现类似的东西.

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 – 启动进程并侦听退出事件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1258622.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存