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;