delphi 建立线程监视  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi 建立线程监视



var

  Form1: TForm1;

  Hprocess: THandle;

implementation

{$R *.dfm}

 

function MyThread(P: Pointer): DWORD; stdcall;

begin

  if WaitForSingleObject(Hprocess, INFINITE) = WAIT_OBJECT_0 then

    Form1.Text := Format('进程 %d 已关闭', [hProcess]);

  Result := 0;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

var

  pInfo: TProcessInformation; sInfo: TStartupInfo;

  Path: array[0..MAX_PATH - 1] of Char;

  ThreadID: DWORD; sPath: PChar;

begin

  GetSystemDirectory(Path, MAX_PATH);

  sPath := PChar(path + '/cmd.exe'); //StrCat(Path, '/cmd.exe');

  FillChar(sInfo, SizeOf(sInfo), 0);

  if CreateProcess(sPath, ' /k md haiou', nil, nil, False,

    0, nil, nil, sInfo, pInfo) then

  begin

    hProcess := pInfo.hProcess;

  {获取进程句柄}

    Text := Format('进程 %d 已启动', [hProcess]);

    CreateThread(nil, 0, @MyThread, nil, 0, ThreadID);

 {建立线程监视}

  end;

end;



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.034862995147705 seconds