一个进程结束时,同时结束另外一个相关的进程。 ( 积分: 50 )

  • 主题发起人 主题发起人 simonlyr
  • 开始时间 开始时间
S

simonlyr

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在一个程序结束时,结束与之相关的另外一个程序。怎么实现呢?急!希望在delphi中给出简单的实现代码,测试通过后即给分。
 
我想在一个程序结束时,结束与之相关的另外一个程序。怎么实现呢?急!希望在delphi中给出简单的实现代码,测试通过后即给分。
 
可以在线程1的Terminate事件或Destroy事件中结束线程2,一句就行了:<br>Thread2.Terminate;
 
不是线程。是两个独立的进程。一个进程结束后我要结束另外一个于之相关的进程
 
给你一个例子,把这段代码写导你的程序结束代码中<br>var<br>HWndCalculator : HWnd;<br>begin<br>// 得到计算器的句柄<br>HWndCalculator :=FindWindow(nil, '计算器');<br>//如果句柄存在,关闭计算器<br>if HWndCalculator &amp;lt;&amp;gt; 0 then<br>SendMessage(HWndCalculator, WM_CLOSE, 0, 0);<br>end;
 
to robinhanhui:<br> &nbsp;万一标题是动态改变的情况呢?怎么可以简单的实现?
 
很简单,在CLOSE事件里直接列举你要关闭的进程在不在,在就关闭。<br>代码我调试通过了的<br><br>var<br> &nbsp;PID &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; :DWORD;<br> &nbsp;SmW &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; :string;<br> &nbsp;BRet &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:Boolean;<br> &nbsp;tmp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; :string;<br> &nbsp;SnapshotHandle &nbsp;:THandle;<br> &nbsp;PE32 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:TProcessEntry32;<br> &nbsp;Hmb &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; :HWND;<br>begin<br> &nbsp;SmW := lowercase('{需要结束的进程名}');<br> &nbsp;SnapshotHandle := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);<br> &nbsp;PE32.dwSize := SizeOf(PE32);<br> &nbsp;BRet:=Process32First(SnapshotHandle, PE32);<br> &nbsp;while Integer(BRet) &amp;lt;&amp;gt; 0 do<br> &nbsp; &nbsp;begin<br> &nbsp; &nbsp; &nbsp;tmp:=lowercase(PE32.szExeFile);<br> &nbsp; &nbsp; &nbsp;if pos(SmW,tmp)&amp;gt;0 then<br> &nbsp; &nbsp; &nbsp; &nbsp;begin<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PID := PE32.th32ProcessID;<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Hmb:= OpenProcess(PROCESS_ALL_ACCESS, True,PID);<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TerminateProcess(Hmb,0);<br> &nbsp; &nbsp; &nbsp; &nbsp;end;<br> &nbsp; &nbsp; &nbsp;BRet:=Process32Next(SnapshotHandle,PE32);<br> &nbsp; &nbsp;end;<br>
 
窗口是动态的,但其文件路径是固定的<br>可查其路径
 
多人接受答案了。
 
后退
顶部