Delphi 中 ShellExecute 函数实现程序调用与延时执行
在 Delphi 开发中,ShellExecute 函数常被用于调用外部程序。通过灵活运用其参数,不仅可以实现简单的程序启动,还能实现延时执行等功能。
程序调用:
ShellExecute 函数的核心功能是调用可执行文件。开发者只需传入文件路径、参数等信息,即可启动目标程序。
延时执行:
借助 Windows API 中的等待函数 (如 WaitForSingleObject),可以实现 ShellExecute 函数调用后的延时操作。具体步骤如下:
- 调用 ShellExecute 函数启动目标程序。
- 获取启动程序的进程句柄。
- 使用 WaitForSingleObject 函数设置等待时间。
- 等待时间结束后,继续执行后续代码。
示例代码:
procedure TForm1.Button1Click(Sender: TObject);
var
SEInfo: TShellExecuteInfo;
ExitCode: DWORD;
ProcessHandle: THandle;
begin
// 初始化 ShellExecuteInfo 结构体
FillChar(SEInfo, SizeOf(SEInfo), 0);
SEInfo.cbSize := SizeOf(TShellExecuteInfo);
SEInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
SEInfo.Wnd := Handle;
SEInfo.lpFile := PChar('notepad.exe');
SEInfo.nShow := SW_SHOW;
// 调用 ShellExecute 函数
if ShellExecuteEx(@SEInfo) then
begin
// 获取进程句柄
ProcessHandle := SEInfo.hProcess;
// 等待 5 秒
WaitForSingleObject(ProcessHandle, 5000);
// 获取程序退出码
GetExitCodeProcess(ProcessHandle, ExitCode);
// 关闭进程句柄
CloseHandle(ProcessHandle);
end;
end;
ShellExecute 函数为 Delphi 开发者提供了便捷的程序调用方式,结合等待函数更能实现延时执行等功能,极大提升了程序的灵活性。
295.97KB
文件大小:
评论区