破釜沉舟论坛 » 编程开发 » 调用外部程序的几种方式(WinExec、ShellExecute、CreateProcess)

2006-4-19 20:47 祥子
调用外部程序的几种方式(WinExec、ShellExecute、CreateProcess)

  调用外部程序的几种方式(WinExec、ShellExecute、CreateProcess)


//WinExec
procedure TForm1.Button1Click(Sender: TObject);
begin
  WinExec(PChar('CMD.exe "/C ping 10.72.39.11 >> C:\ping.txt"'), SW_HIDE);
end;

//ShellExecute
procedure TForm1.Button2Click(Sender: TObject);
begin
  ShellExecute(handle,'Open',PChar('CMD.exe'),'"/C ping 10.72.39.11 >> C:\ping.txt"',nil, SW_HIDE);
end;

//CreateProcess
procedure TForm1.Button3Click(Sender: TObject);
var
  StartupInfo:TStartupInfo;
  ProcessInfo:TProcessInformation;
begin
  FillChar(ProcessInfo, sizeof(TProcessInformation),0);
  FillChar(StartupInfo,Sizeof(TStartupInfo),0);
  StartupInfo.cb := Sizeof(TStartupInfo);
  StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
  StartupInfo.wShowWindow := SW_HIDE;
  If CreateProcess('C:\Windows\System32\CMD.exe',
                  '"/C C:\Windows\System32\ping.exe 10.72.39.11 >> C:\ping.txt"',
                  nil,
                  nil,
                  False,
                  NORMAL_PRIORITY_CLASS,
                  nil,
                  nil,
                  StartupInfo,
                  ProcessInfo) then
  begin
   waitForSingleObject(ProcessInfo.hProcess,Infinite);
   CloseHandle(ProcessInfo.hProcess);
  end
end;

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.