![]() |
Mein Programm funktioniert nicht über eine Verknupfung richtig !
Hallo
ich verstehe nicht warum funktioniert mein Programm richtig, nur wenn ich das Programm direkt im Programmverzeichnis starte ! Aber wenn ich mein Programm durch eine Verknüpfung (durch das Icon auf Desktop) aufrufe, dann können alle Dateien wie Videos, die ich in mein Programm lade nicht gefunden werden) !!! Was ist der Unterschied, wenn ich das Programm direkt aufrufe oder durch eine Verknüpfung ? Ich lade meine Videos in Mediaplayer Komponent : MediaPlayer.FileName :=Temp +'\video1.avi'; |
AW: Mein Programm funktioniert über eine Verknupfung
Eventuell wegen dem "working directory"?
|
AW: Mein Programm funktioniert über eine Verknupfung
Was meinst du bitte mit "working directory" ?
Als Hinweis So wird der Pfad gebaut : Temp :=GetEnvironmentVariable('Temp'); MediaPlayer.FileName :=Temp +'\video1.avi'; |
AW: Mein Programm funktioniert über eine Verknupfung
Benutz einfach beim Dateizugriff als Pfad nicht 'ordner\datei.ext', sondern sowas wie
Delphi-Quellcode:
.
IncludeTrailingBackslash(ExtractFilePath(Application.ExeName)) + 'ordner\datei.exe'
|
AW: Mein Programm funktioniert über eine Verknupfung
Was Bummi am Anfang geschrieben hat, konnte das Problem sein
Wenn ich eine die Verknüpfung selbe erstellen, dann geht Aber die Verknüpfung, die von dem Setup-Programm (Inno) erstellt werden, funktionieren nicht Und noch was. Die Verknüpfung-Eigenschaften von Inno steht nur der Ziel-Pfad Aber Ausführen : Leer Kann das das Problem sein ? |
AW: Mein Programm funktioniert über eine Verknupfung
ja, wir hatte vor kurzem ein ähnlich fehlerhaftes Setup erstellt, es aber glücklicherweise in der Testphase noch bemerkt.
|
AW: Mein Programm funktioniert über eine Verknupfung
Du Hast dann Glück gehabt ;)
Und die Lösung jetzt ! Kann ich das Problem bei dem Toll "Inno" korrigieren oder was ? :( Ich verwende Inno Setup v5.3.10 Oder kommen wir zurück was @wicht geschrieben haben von "working directory" ?
Delphi-Quellcode:
quelle:
[Icons]
; NOTE: Ensure that you always include and set the WorkingDir. ; Filename is the "Target" parameter in your properties ; WorkingDir is the "Start In" parameter in your properties ; This is where the current directory will be set in your program at start up. ![]() Wie gesagt, ich habe die Version Inno Setup 5.3.10 Aber bei der Version 5.3.11 wurde das Problem behoben ![]() |
AW: Mein Programm funktioniert über eine Verknupfung
Leider muß ich hier passen, wir verwenden kein INNO.
Bei uns ist InstallAware im Einsatz, hier fehlte einfache eine Eigenschaft für das Arbeitsverzeichnis. |
AW: Mein Programm funktioniert über eine Verknupfung
Dann müsste an das Icon wohl sowas wie "WorkingDir: {app}" mit angegeben werden. Finde ich aber unschön, besser ist es meiner Meinung nach, wenn das Programm vom Ort der .exe ausgeht, wenn es Dateien sucht (wie schon oben beschrieben..).
|
AW: Mein Programm funktioniert über eine Verknupfung
ich gebe "wicht" recht, besser ist es wenn die Anwendung nicht abhängig ist.
Falls Du das mit INNO nicht in den Griff bekommst kannst Du theoretisch ganz schmutzig auch die Verknüpfung aus dem Programm heraus erstellen / reparieren
Delphi-Quellcode:
benötigt uses ShlObj, ActiveX, ComObj;
var
IObject : IUnknown; ISLink : IShellLink; IPFile : IPersistFile; PIDL : PItemIDList; InFolder : array[0..MAX_PATH] of Char; TargetName : String; LinkName : WideString; begin TargetName := Application.ExeName; IObject := CreateComObject(CLSID_ShellLink) ; ISLink := IObject as IShellLink; IPFile := IObject as IPersistFile; with ISLink do begin SetPath(pChar(TargetName)) ; SetWorkingDirectory(pChar(ExtractFilePath(TargetName))) ; end; SHGetSpecialFolderLocation(0, CSIDL_DESKTOPDIRECTORY, PIDL) ; SHGetPathFromIDList(PIDL, InFolder) ; LinkName := InFolder + '\MeinProgramm.lnk'; IPFile.Save(PWChar(LinkName), false) ; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 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