Zdravím, řeším takový problém, že potřebuju v mé aplikaci napsané v Delphi spustit externí EXE soubor (win32) a počkat na jeho ukončení... jde to nějak?
Printable View
Zdravím, řeším takový problém, že potřebuju v mé aplikaci napsané v Delphi spustit externí EXE soubor (win32) a počkat na jeho ukončení... jde to nějak?
Můžeš volat WinExec('název exe',SW_SHOW) a potom provést něco jako todle:
repeat
until FindWindow(nil,'titulek externího programu')=0;
Díky moc! Tohle je přesně to, co jsem potřeboval. Díky!Citace:
Původně odeslal Big Muscle
To je humus - vyrabas tym 100% zatazenie CPU robenim nicoho :!:
Osobne pouzivam toto - kedysi som to niekde vyhrabal a upravil:
Pouziva sa to napriklad takto:Kód:function ShellExec(Verb,FileName,Params,Path:PChar; Show:Word; Wait:Boolean):LongInt;
var OK:Boolean;
Info:TShellExecuteInfo;
begin
FillChar(Info,SizeOf(Info),0);
with Info do
begin
cbSize:=SizeOf(Info);
fMask:=SEE_MASK_NOCLOSEPROCESS;
lpVerb:=Verb;
lpFile:=FileName;
lpParameters:=Params;
lpDirectory:=Path;
nShow:=show;
end;
OK:=Boolean(ShellExecuteEx(@Info));
if OK then
if wait then
begin
while WaitForSingleObject(Info.hProcess,100)=WAIT_TIMEOUT do Application.ProcessMessages;
OK:=GetExitCodeProcess(Info.hProcess,DWord(Result));
end
else Result:=0;
if not OK then Result:=-1;
end;
Kód:ShellExec('open','rundll32.exe','setupapi.dll,InstallHinfSection DefaultInstall 132 L3CODEC\L3CODEC.INF','',0,TRUE)
2 Rainbow: hmm, zajímavé, zkusím to. Já jsem kdysi dřív ten WinExec v něčem použil, ale teď jsem si za boha nemohl vzpomenout jak to přesně bylo... ale zkusím tu tvou machrovinku, vypadá zajímavě :-)
Díky
Ma to zaujimavu vlastnost - da sa s tym spustit vsetko, co sa da spustit v Shelli, napriklad dokument (spusti sa asociovany program) alebo URL (http adresa alebo link na mail).
Jenom by mě zajímalo, jak nadefinuju ten typ TShellExecuteInfo?Citace:
Původně odeslal Rainbow
Aha, zabudol som. Do uses pridaj ShellAPI. Je to standardny unit v Delphi.
2 Rainbow: Jo jo, funguje to. Díky za radu!