runutils.pas

来自「这是一套全面的网络组件」· PAS 代码 · 共 35 行

PAS
35
字号
unit RunUtils;

interface

procedure RunFile(const AFileName: string);

implementation

uses
  SysUtils, Windows;

procedure RunFile(const AFileName: string);
var
  StartupInfo: TStartupInfo;
  ProcessInfo: TProcessInformation;
begin
  ZeroMemory(@StartupInfo, SizeOf(TStartupInfo));
  StartupInfo.cb := SizeOf(TStartupInfo);
  StartupInfo.dwFlags := StartupInfo.dwFlags or STARTF_USESHOWWINDOW;
  StartupInfo.wShowWindow := SW_HIDE;

  ZeroMemory(@ProcessInfo, SizeOf(TProcessInformation));

  if not CreateProcess(nil, PChar(AFileName), nil, nil, False,
    CREATE_NEW_CONSOLE or CREATE_NO_WINDOW, nil, nil, StartupInfo, ProcessInfo) then
  begin
    raise Exception.CreateFmt('Can not run %s file, error %d', [AFileName, GetLastError()]);
  end;

  CloseHandle(ProcessInfo.hThread);
  CloseHandle(ProcessInfo.hProcess);
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?