在 Delphi 中,我多年来一直使用 ShellExecute 来启动(并可选择等待)其他应用程序。但现在,我需要让这些应用程序之一出现在我的 Delphi 应用程序表单之一中。我已经尝试将下面的代码作为一个简单的测试来打开记事本(它确实如此)并在我的表单上的 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;