Autor |
Beitrag |
Daniel L.
Beiträge: 140
Erhaltene Danke: 14
W7, W8
TurboD Prof, Delphi Community
|
Verfasst: Mi 03.07.13 17:18
Hallo,
Meine Anwendung wird vom User durch eine Verknüpfung gestartet, die sich in irgendeinem anderen Ordner befindet.
Kann die Anwendung diesen Ordner ermittlen?
Danke und Gruss: Daniel
|
|
jaenicke
Beiträge: 19285
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 03.07.13 19:42
Diese Information ist nicht abrufbar, nein.
|
|
GuaAck
Beiträge: 378
Erhaltene Danke: 32
Windows 8.1
Delphi 10.4 Comm. Edition
|
Verfasst: Mi 03.07.13 19:54
Man könnte den aktuellen Pfad als Parameter in der Verknüpfung eintragen. Das könnte die Anwendung über Paramcount, Paramstr dann abfragen. Hängt von der Erstellung der Verknüpfung ab, ab das praktikabel ist.
Gruß GuaAck
|
|
Palladin007
Beiträge: 1282
Erhaltene Danke: 182
Windows 11 x64 Pro
C# (Visual Studio Preview)
|
Verfasst: Do 04.07.13 13:14
Oder schreibe doch die schlussendlich zu startende Anwendungs-Datei so um, dass sie automatisch den Installations-Pfad sucht und dann auch dort benötigte Dateien abruft.
So kann diese Anwendungsdatei dann von überall gestartet werden, solange die Anwendung woanders zu finden ist.
Und wenn sie nicht gefunden wird, fragst du den Nutzer nach dem Installationspfad und speicherst den dann in einer kleinen Datei unter appdata.
|
|
jaenicke
Beiträge: 19285
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 04.07.13 13:50
|
|
Palladin007
Beiträge: 1282
Erhaltene Danke: 182
Windows 11 x64 Pro
C# (Visual Studio Preview)
|
Verfasst: Do 04.07.13 15:48
Oder anders ausgedrückt: Schreib einen Launcher, dann musst du nicht voraus setzen, dass die automatisch generierte Verknüpfung verwendet, oder eine neue korrekt erstellt wird.
Und Installationen mag ich nicht, die würde ich lieber umgehen. Der Programm-Ordner wird dann schlicht entpackt und der Inhalt durch den Launcher verwendet.
Auch die Registry mag ich nicht, braucht man für die nicht Administratoren-Rechte? Ich würde eine Anwendung lieber ohne Administratoren-Rechte zur Verfügung stellen können.
|
|
baumina
Beiträge: 305
Erhaltene Danke: 61
Win 7
Delphi 10.2 Tokyo Enterprise
|
Verfasst: Do 04.07.13 15:56
|
|
jaenicke
Beiträge: 19285
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 04.07.13 15:57
Palladin007 hat folgendes geschrieben : | Auch die Registry mag ich nicht, braucht man für die nicht Administratoren-Rechte? Ich würde eine Anwendung lieber ohne Administratoren-Rechte zur Verfügung stellen können. |
Für normale Einstellungen ist die Registry der richtige Ort. Nur um in der Registry für alle User zu schreiben braucht man Adminrechte, für den aktuellen User reichen auch dessen Rechte.
Palladin007 hat folgendes geschrieben : | Oder anders ausgedrückt: Schreib einen Launcher, dann musst du nicht voraus setzen, dass die automatisch generierte Verknüpfung verwendet, oder eine neue korrekt erstellt wird. |
Wofür das ganze dienen soll, können wir ja nicht wissen, aber mit einem Launcher löst sich das Problem wohl kaum.
Palladin007 hat folgendes geschrieben : | Und Installationen mag ich nicht, die würde ich lieber umgehen. |
Nur weil du sie nicht magst, ändert das nichts daran, dass das nun einmal das Standardvorgehen für die Installation von Software ist, wenn man das System sauber halten will. Nur ein Installer kann (und sollte normalerweise) wissen was alles bei einer Deinstallation mit deinstalliert werden muss.
|
|
Palladin007
Beiträge: 1282
Erhaltene Danke: 182
Windows 11 x64 Pro
C# (Visual Studio Preview)
|
Verfasst: Do 04.07.13 17:09
Zitat: | Wofür das ganze dienen soll, können wir ja nicht wissen, aber mit einem Launcher löst sich das Problem wohl kaum. |
Warum nicht? Dieser Launcher enthält entweder das ganze Programm und sucht die benötigten Dateien aus dem Installations-Ordner zurecht und kann die Informationen des aktuellen Ortes, von wo der Launcher gestartet wurde, gleich mit verarbeiten.
Dass man die Position einer Verknüpfung nicht abfragen kann ist eine Tatsache und man kann nicht voraus setzen, dass ein Nutzer immer die automatisch generierte Verknüpfung mit dem Pfad als Parameter verwendet, oder weitere Verknüpfungen korrekt erstellt. Es muss also eine Lösung her und warum sollte ein Nutzer eine Verknüpfung verwenden, wenn er die exe-Datei sowieso von überall, wo es ihm passt, verwenden kann?
Dann braucht er keine Verknüpfung mehr, der Launcher sendet aber zuverlässig alle benötigten Daten an das Hauptprogramm weiter.
Zitat: | Nur weil du sie nicht magst, ändert das nichts daran, dass das nun einmal das Standardvorgehen für die Installation von Software ist, wenn man das System sauber halten will. Nur ein Installer kann (und sollte normalerweise) wissen was alles bei einer Deinstallation mit deinstalliert werden muss. |
Deinstalliert werden kann es auch so.
Der muss nur wissen, wo alle Dateien liegen, kann sie von dort löschen und dann den Pfad, wo der Programm-Pfad hinterlegt ist, ebenfalls löschen. Dazu braucht es gar nicht erst eine Installation.
Weshalb ich Installationen nicht mag ist ganz einfach: Ich weiß nicht, was dabei geschieht.
Und genau deshalb möchte ich das Anderen ersparen. Die Nutzer sollen das Programm nur simpel mit WinRar oder irgendwas Anderem entpacken und gleich verwenden können. Meiner Meinung nach sollte so wenig wie nur irgendwie möglich außerhalb des Programm-Ordners gespeichert werden, so bietet sich dann auch die Möglichkeit, das Programm portabel zu verwenden.
Baut man noch mit ein, dass der Programm-Ordner im aktuellen Pfad gesucht wird, oder der Pfad in einer Datei unter Appdata, dann kann auch einfach der Ordner neben der exe auf einen Stick kopiert und normal weiter verwendet werden.
PS: Admin-Rechte würde ich meiner Meinung nach nur dann fordern, wenn ich sie auch für die Funktion des Programms benötige.
|
|
jaenicke
Beiträge: 19285
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 04.07.13 18:18
|
|
|