Du könntest einfach vorher mit
fileexists schauen. Nebenbei hat
Shellexecute auch einen rückgabewert, den man auswerten könnte.
Desweiteren wird dein Code so nicht funktionieren:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| Timer1.Enabled :=true; ProgressBar1.Position :=Timer1.Interval; if ProgressBar1.Position =100 then SHELLEXECUTE (handle,'open','C:\Program Files (x86)\EA und SUMIT.de GmbH in Zusammenarbeit mit GG Berlin\ApoPlus Apothekensystem 2010\ApoPlus 1.0\ApoPlus 1.0 DELPHI2009\Apo.exe','','',SW_SHOWNORMAL);
Application.MessageBox('Die Datei Apo.exe konnte nicht gefunden werden. Möglicherweise wurde die Datei umbenannt, verschoben oder entfernt. Installieren Sie das Programm'#13+ 'erneut, um Fehler zu beheben.','Datei nicht gefunden.',mb_ICONSTOP or mb_OK); |
Warum überhaupt den Nutzer warten lassen??
Damit das cool aussieht?
Dann starte das Programm aus dem Timer, wenn die Progressbar durchgelaufen ist. Oder benutze eine schleife mit
sleep und
application.processMessages