var
pInfomation:TProcessInformation;
sStartupInfo:TStartupInfo;
begin
FillChar(sStartupInfo,Sizeof(sStartupInfo),#0);
sStartupInfo.cb := SizeOf(sStartupInfo);
sStartupInfo.dwFlags := STARTF_USESHOWWINDOW;
sStartupInfo.wShowWindow := SW_hide;
CreateProcess(nil,'command.com /c arp.bat',nil,nil,false,0,nil,nil,sStartupInfo,pInfomation);
WaitForSingleObject(pInfomation.hProcess,infinite);
end;
如上:运行后发现command 占用cpu 很高。
同时,自动生成的bat文件双击运行后,总是在循环执行第一条,批处理如下:
arp -d
arp -s 192.0.0.1 00-07-09-4E-76-A0
pInfomation:TProcessInformation;
sStartupInfo:TStartupInfo;
begin
FillChar(sStartupInfo,Sizeof(sStartupInfo),#0);
sStartupInfo.cb := SizeOf(sStartupInfo);
sStartupInfo.dwFlags := STARTF_USESHOWWINDOW;
sStartupInfo.wShowWindow := SW_hide;
CreateProcess(nil,'command.com /c arp.bat',nil,nil,false,0,nil,nil,sStartupInfo,pInfomation);
WaitForSingleObject(pInfomation.hProcess,infinite);
end;
如上:运行后发现command 占用cpu 很高。
同时,自动生成的bat文件双击运行后,总是在循环执行第一条,批处理如下:
arp -d
arp -s 192.0.0.1 00-07-09-4E-76-A0
start arp -d
start arp -s
start ...
arp.exe -d
arp.exe -s 192.0.0.1 00-07-09-4E-76-A0因为它优先执行了当前目录中的arp.bat,而不是系统路径中的arp.exe