PDA

View Full Version : مشكل با ShellExecute



mohsen_r
شنبه 02 مرداد 1389, 07:24 صبح
با سلام
من يه مشكل با ShellExecute دارم اونم اينه كه من چند ShellExecute را باهم اجرا ميكنم و ميخوام تا دستور اول كارش انجام نداده دستور بعدي اجرا نشه ولي در حالت عادي 4 دستور باهم اجرا ميشه
(ShellExecute(0,nil,PChar('net') ,pchar('Stop "wuauserv"'), nil, SW_HIDE
(ShellExecute(0,nil,PChar('wsus.reg') ,nil, nil, SW_HIDE
(ShellExecute(0,nil,PChar('net') ,pchar('Start "wuauserv"'), nil, SW_HIDE
(ShellExecute(0,nil,PChar('wuauclt') ,pchar('/detectnow'), nil, SW_HIDE

Felony
شنبه 02 مرداد 1389, 07:54 صبح
function ExecAndWait(const ExecuteFile, ParamString : string): boolean;
var
SEInfo: TShellExecuteInfo;
ExitCode: DWORD;
begin
FillChar(SEInfo, SizeOf(SEInfo), 0);
SEInfo.cbSize := SizeOf(TShellExecuteInfo);
with SEInfo do
begin
fMask := SEE_MASK_NOCLOSEPROCESS;
Wnd := Application.Handle;
lpFile := PChar(ExecuteFile);
lpParameters := PChar(ParamString);
nShow := SW_HIDE;
end;
if ShellExecuteEx(@SEInfo) then
begin
repeat
Application.ProcessMessages;
GetExitCodeProcess(SEInfo.hProcess, ExitCode);
until (ExitCode <> STILL_ACTIVE) or Application.Terminated;
Result:=True;
end
else Result:=False;
end;