別EXEを起動させようと書籍のサンプルプログラムをコピーしたんですが、
コンパイルすると
TProcessInformation;
で未定義エラーが出てしまいます。
何が原因でしょうか?
usesには、ShellAPIを追加してます。
procedure TFormWaitEnd.ButtonCreateProClick(Sender: TObject);
var
ExeSuccess: Boolean;
SI: TStartupInfo;
PI: TProcessInformation;←ココで未定義エラー
begin
GetStartupInfo(SI);
ExeSuccess := CreateProcess(nil, PChar(Edit1.Text), nil, nil, False,
CREATE_DEFAULT_ERROR_MODE, nil, nil, SI, PI);
if not ExeSuccess then
begin
ShowMessage(Edit1.Text + ' を起動できませんでした。');
Abort;
end;
try
// 呼び出し元のフォームを無効にする
FormWaitEnd.Enabled := False;
// WaitForSingleObjectで待機する
while WaitForSingleObject(PI.hProcess, 0) = WAIT_TIMEOUT do
Application.ProcessMessages;
ShowMessage('終了しました。');
finally
FormWaitEnd.Enabled := True;
end;
end;
ちなみに、サンプルプログラムをコンパイルすると実行できました。
usesに Windowsはありますか?
ありがとうございます。
データモジュール使ってたのでWindowsをusesしてませんでした。
ツイート | ![]() |