![]() |
ShellExecute Buggt bei bestimmten Programmen?
Hi,
Ich nutze folgenden Code um eine Anwendung auszuführen:
Delphi-Quellcode:
Nun bin ich mir schon nicht sicher:
ShellExecute(0, PChar('open'), PChar(ExeName), PChar(Parameter), PChar(AppFolder), SW_SHOW);
muss AppFolder der Ordner von der aufrufenden oder der aufgerufenen Anwendung sein? oder noch was anderes? atm ist es nämlich der Ordner von der aufgerufenen. das funktioniert auch eigentlich...Thunderbird, Steam, Winamp, lässt sich alles starten. Allerdings gibt es ein Spiel "Empires die Neuzeit" (vielleicht kennt das der ein oder andere) welches sofort abstürzt Zitat:
Woran liegt das? ist einer der Parameter falsch oder "ungenau"? können das leute bestätigen oder habe das problem nur ich? |
Re: ShellExecute Buggt bei bestimmten Programmen?
Nun AppFolder muss das Arbeitsverzeichnis der aufgerufenen Anwendung sein. Sollte also das Verzeichnis der aufgerufenen Anwendung sein.
Vielleicht erwartet ja die Anwendung ein anderes Arbeitsverzeichnis oder auch bestimmte Parameter. Gibts vielleicht irgendwo (Desktop / Startmenü) ne Verknüpfung darauf? Dann schau doch mal, was da als Arbeitsverzeichnis und als Parameter angegeben ist. |
Re: ShellExecute Buggt bei bestimmten Programmen?
Zitat:
Probiers mal mit:
Delphi-Quellcode:
"D:\Empires die Neuzeit\Empires_DMW.exe"
|
Re: ShellExecute Buggt bei bestimmten Programmen?
also bei
ExeName = "D:\Empires die Neuzeit\Empires_DMW.exe" Folder = "D:\Empires die Neuzeit" hängt er immer noch :( kann es daran liegen das es "\" und nicht "/" sind? |
Re: ShellExecute Buggt bei bestimmten Programmen?
Hallo,
wenn der Pfad als separater Parameter (AppFolder) angegeben wird, würde ich ihn bei ExeName weglassen. Sonst wäre es ja sozusagen "C:\Pfad\C:\Pfad\EXE.exe". Bei mir gab es übrigens oft Probleme, wenn ich bei Programmen 'open' geschrieben habe. Ich habe dann immer nil genommen. Gruß, ManuMF |
Re: ShellExecute Buggt bei bestimmten Programmen?
Zitat:
Grüße Faux |
Re: ShellExecute Buggt bei bestimmten Programmen?
Moin Manu,
Zitat:
AppFolder ist das Arbeitsverzeichnis. Wird dieses weggelassen, ist das Programmverzeichnis des aufgerufenen Programmes das Arbeitsverzeichnis. @Gereon: Also die \ sind schon OK. Schau Dir doch mal den Rückgabewert von ShellExecute an (hierzu auf jeden Fall die Kommentar im "normalen" PSDK oder auf MSDN beachten, und nicht die des bei Delphi mitgelieferten PSDK-Auszuges). Vielleicht gibt der ja schon einen brauchbaren Hinweis. Probier's evtl. doch mal so:
Delphi-Quellcode:
ShellExecute(0,nil,'"D:\Empires die Neuzeit\Empires_DMW.exe"',nil,nil,SW_SHOWNORMAL);
|
Re: ShellExecute Buggt bei bestimmten Programmen?
Probiere mal einen Aufruf im 8.3 - Format, dann weißt du zumindest, obs am Pfad oder der EXE liegt.
Grüße Faux |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz