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?
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;
EC5410 + Chill 400w, AMD Athlon XP 2500+@3200+, AC Copper Silent 2 (rev2), Out: AC Fan Pro TC, DFI NFII Ultra-AL nForce2 Ultra 400, 2x256MB+512MB DDR 333 CL2.5 Dual Channel, inno3D GeForce4 Ti4200-8x 128MB + AC Fan Pro TC, Seagate ST3160023A 160GB, Seagate ST360021A 60GB, Teac CD-W552E, LG SuperMulti GSA-4160B, SB Live! 5.1 Player + Audigy MOD, Windows XP Pro SP2, Karneval TURBO 2000/300
Díky moc! Tohle je přesně to, co jsem potřeboval. Díky!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)
1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm
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).
1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm
Jenom by mě zajímalo, jak nadefinuju ten typ TShellExecuteInfo?Původně odeslal Rainbow
Aha, zabudol som. Do uses pridaj ShellAPI. Je to standardny unit v Delphi.
1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm
2 Rainbow: Jo jo, funguje to. Díky za radu!
Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)