Delphi では、ShellExecute を何年も使用して、他のアプリケーションを起動 (およびオプションで待機) してきました。ただし、これらのアプリケーションの 1 つを Delphi アプリ フォームの 1 つに表示する必要があります。以下のコードを簡単なテストとして、メモ帳を開き (開く)、フォームの PAnel1 内に結果を表示する (表示しない) ことを試しました。親切な人が私を正しい軌道に乗せることができますか? ありがとう
var
Rec : TShellExecuteInfo;
wnd : HWnd;
const
AVerb = 'open';
AParams = '';
AFileName = 'Notepad.exe';
ADir = '';
begin
FillChar(Rec, SizeOf(Rec), #0);
Rec.cbSize := SizeOf(Rec);
Rec.fMask := SEE_MASK_NOCLOSEPROCESS;
Rec.lpVerb := PChar( AVerb );
Rec.lpFile := PChar( AfileName );
Rec.lpParameters := PChar( AParams );
Rec.lpDirectory := PChar( Adir );
Rec.nShow := sw_Show;
ShellExecuteEx(@Rec);
wnd := Windows.FindWindow( 'Notepad', nil );
Windows.SetParent( Wnd, PAnel1.Handle );
end;