代码文件:
<pre>unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject,',','); end; var Form1: TForm1; implementation var hProcess: THandle; function MyThreadFun(p: Pointer): DWORD; stdcall; begin if WaitForSingleObject(hProcess, INFINITE) = WAIT_OBJECT_0 then Form1.Text := Format('进程 %d 已关闭', [hProcess],',','); Result := 0; end; procedure TForm1.Button1Click(Sender: TObject,',','); var pInfo: TProcessInformation; sInfo: TStartupInfo; Path: array[0..MAX_PATH-1] of Char; ThreadID: DWORD; begin GetSystemDirectory(Path, MAX_PATH,',','); StrCat(Path, 'otepad.exe',',','); FillChar(sInfo, SizeOf(sInfo), 0,',','); if CreateProcess(Path, nil, nil, nil, False, 0, nil, nil, sInfo, pInfo) then begin hProcess := pInfo.hProcess; Text := Format('进程 %d 已启动', [hProcess],',','); CreateThread(nil, 0, @MyThreadFun, nil, 0, ThreadID,',','); end; end; end.
关键字词: