主页 > 编程资料 > Delphi >
发布时间:2015-09-22 作者:网络 阅读:135次

 代码文件:


<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.


关键字词: