Entwickler-Ecke

Dateizugriff - Programm soll exe-Datei starten


Peter178 - Fr 07.04.06 21:24
Titel: Programm soll exe-Datei starten
Ich weiß leider nicht genau, ob das hier richtig ist, aber hat einer eine Ahnung, wie man sein Delphi Programm dazu bringt, irgend eine exe-Datei zu starten?


jakobwenzel - Fr 07.04.06 21:27

Kennst du die Forumssuche?


Danniolo - Fr 07.04.06 21:28


Delphi-Quelltext
1:
2:
  if (ShellExecute(Application.Handle, 'open', PChar('C:\blubb.exe'), NilNil, SW_NORMAL) <= 32then 
    ShowMessage('Es ist ein Fehler aufgetreten');

Sollte eigentlich funktionieren :wink:


Marco D. - Fr 07.04.06 21:35

user profile iconDanniolo hat folgendes geschrieben:

Delphi-Quelltext
1:
2:
  if (ShellExecute(Application.Handle, 'open', PChar('C:\blubb.exe'), NilNil, SW_NORMAL) <= 32then 
    ShowMessage('Es ist ein Fehler aufgetreten');

Sollte eigentlich funktionieren :wink:

Vergiss nicht das:

Delphi-Quelltext
1:
uses ShellApi;                    


Peter178 - Fr 07.04.06 21:57

ah danke :)
hatte mit der Suchfunktion nicht das gefunden, was ich haben wollte


Deathman - Di 09.05.06 20:36

es geht auch leichter

Delphi-Quelltext
1:
Winexec('Dateipfad', SW_SHOWNORMAL);                    

zur erklärung:
SW_SHOWNORMAL steht dafür wie es angezeigt werden soll.
Du kannst auch SW_SHOWMINIMIZED oder SW_SHOWMAXIMIZED nehmen


Gausi - Di 09.05.06 20:43

WinExec. Sollte. Nicht. Mehr. Verwendet. Werden.

Das gibts nur noch aus Abwärtskompatiblitätsgründen und macht bei einigen Usern unter XP schon jetzt arge Probleme.

Edit: :oops: Ist eigentlich nicht meine Art, einen Neuling so anzupflaumen. Sorry. Ich bin eigentlich ein ganz lieber ;-)


Born-to-Frag - Di 09.05.06 20:52

Trotzdem :welcome: im Forum user profile iconDeathman ;)


greetz


Deathman - Mi 10.05.06 11:29

sorry wustt ick net

Aba die Antwort is net so schlimm

THX fürs Welcome


Timosch - Mi 10.05.06 14:12

Trotzdem ist es zum Verrücktwerden, dass regelmäßig immer wieder solche Threads eröffnet werden. Und zum Satz "Hatte bei der Suche nichts gefunden" lässt sich nur sagen:
Suche in: Delphi-Forum, Delphi-Library "EXTERNES PROGRAMM AUSF?HREN". Das gibt übersichtliche 2 Ergebnisse. Wer jetzt denkt, das sei ja nicht viel, der soll mal nach Suche in: Delphi-Forum, Delphi-Library SHELLEXECUTE suchen...


Delete - Fr 12.05.06 17:12

Nur mal aus reinem Interresse: Warum wurde Shellexec den abgesetzt. Dieser Befehl ist doch eigentlich viel unkomplizierter als 'shellexecute'. Oder?


Timosch - Sa 13.05.06 11:22

Du meinst WinExec? Alle neuen Funktionen sind komplizierter als die alten (meistens jedenfalls), aber sie können nun mal mehr. Früher gab es CreateWindow, jetzt gibt es CreateWindowEx mit lauter zusätzlichen Parametern.
Bei ShellExecute kannst du noch ein Standardverzeichnis angeben, und die Parameter für das Programm werden in einem getrennten Parameter übergeben. (Ich hoffe, das letzte war halbwegs verständlich... :-) )
Wenn ich Programme nur für mich selber (Win2000) schreibe, benutz ich auch noch oft WinExec, und das kann mir keiner ausreden.
Wenn ich Programme aber für die "Öffentlichkeit" schreibe, benutze ich ShellExecute.
Übrigens: Soweit ich weiß, gibt es schon ShellExecuteEx, also sollte auch ShellExecute nicht mehr verwendet werden... :mrgreen:
Das WinExec unter XP Probleme macht, kann ich nicht bestätigen. Bei mir läuft es zumindest problemlos.
Aber generell stimmt das natürlich schon: Die obsolete-Funktionen sollten nicht mehr verwendet werden.


Delete - Sa 13.05.06 11:54

user profile iconBarzi hat folgendes geschrieben:
Nur mal aus reinem Interresse: Warum wurde Shellexec den abgesetzt. Dieser Befehl ist doch eigentlich viel unkomplizierter als 'shellexecute'. Oder?

Weil WinExec nur noch aus Kompatibilitätsgründen für 16-Bit Programme vorhanden ist. Unter Windows Vista, was keine 16-Bit Programme mehr unterstützt könnte es also nicht mehr vorhanden sein.

user profile iconTimosch hat folgendes geschrieben:
Früher gab es CreateWindow, jetzt gibt es CreateWindowEx mit lauter zusätzlichen Parametern.

CreateWindowEx hat einen parameter mehr, nämlich den ersten für die extendet Fensterstile.

Zitat:
Wenn ich Programme nur für mich selber (Win2000) schreibe, benutz ich auch noch oft WinExec, und das kann mir keiner ausreden.
Wenn ich Programme aber für die "Öffentlichkeit" schreibe, benutze ich ShellExecute.

Und warum dann nicht auch gleich für dich? Verlierst du den Source könnte es für dich unter Vista unbrauchbar werden und du müsstes es komplett neu schreiben.

Zitat:
Übrigens: Soweit ich weiß, gibt es schon ShellExecuteEx, also sollte auch ShellExecute nicht mehr verwendet werden.

ShellexecuteEx ist nur eine Erweiterung und bietet noch ein paar mehr Möglichkeiten. Zum Beipiel erhält man ein Prozesshandle usw.


Timosch - Mo 15.05.06 09:27

Zitat:
Zitat:
Wenn ich Programme nur für mich selber (Win2000) schreibe, benutz ich auch noch oft WinExec, und das kann mir keiner ausreden.
Wenn ich Programme aber für die "Öffentlichkeit" schreibe, benutze ich ShellExecute.

Und warum dann nicht auch gleich für dich? Verlierst du den Source könnte es für dich unter Vista unbrauchbar werden und du müsstes es komplett neu schreiben.

Das stimmt eigentlich, aber ich habe nicht vor, mir Vista zu kaufen. Win2k ist noch eine Weile in Ordnung, und ich bin ein sehr fauler Mensch. Aber eigentlich hast du schon Recht.