フリーソフト

« [Delphi] Formを最背面に表示する | トップページ | [Delphi] エクスプローラからのDrag & Dropに対応する »

[Delphi] 外部プロセスを起動する

var
HAPP:HWND; //起動したアプリケーションのハンドルを保持する

function EnumWindowsProc(HWND:THandle; lParam:LongInt) : BOOL; stdcall;
var
 dwProcessID:Integer;
begin
 Result:=True;
 if (GetWindow(HWND,GW_OWNER)=0) and IsWindowVisible(HWND) then begin
  GetWindowThreadProcessID(HWND,@dwProcessID);
  if (dwProcessID=lParam) then begin
   HAPP:=HWND;
   Result:=False;
  end;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 si:TStartupInfo;
 pi:TProcessInformation;
begin
 GetStartupInfo(si);
 CreateProcess(nil,PChar('Notepad.exe'),nil,nil,False,
    CREATE_DEFAULT_ERROR_MODE,nil,PChar(GetCurrentDir),si,pi);

 WaitForInputIdle(pi.hProcess,INFINITE);

 EnumWindows(@EnumWindowsProc,pi.dwProcessID);
end;

« [Delphi] Formを最背面に表示する | トップページ | [Delphi] エクスプローラからのDrag & Dropに対応する »

Delphi」カテゴリの記事

システム関連」カテゴリの記事

コメント

この記事へのコメントは終了しました。