Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Installationspfad Formatieren (https://www.delphipraxis.net/175393-installationspfad-formatieren.html)

bennySB 18. Jun 2013 14:07

Installationspfad Formatieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Tag zusammen,

ich bin gerade etwas am Thema "Installationspfad" am verzweifeln.
Ich baue mir mit dem Programm "Inno Setup" eine Setup.exe und diese Funktioniert auch wunderbar nur muss ich nun eine kleine Einschränkung einfügen.
Der Benutzer darf nur noch die Partition und Unterordner angeben, jedoch muss der Ordner "Programme" fest vorgeschrieben sein.

Demnach kann der Installationspfad z.B. wie folgt lauten:

XYZ:\Programme\Hilfe ich bin Variabel\Immer noch Variabel\


Nur wie kriege ich es hin diese Auswahl dem Benutzer zwingend vorschreiben zu können, sodass er aber immer noch die restlichen Parameter wählen kann.

Anbei im Textformat mal mein aktueller Code (Über die Formatierung nicht lachen, die wird erst angepasst wenn ich komplett fertig bin)


MfG Benny

Bernhard Geyer 18. Jun 2013 14:51

AW: Installationspfad Formatieren
 
Darf man die Sinnfrage stellen?

bennySB 19. Jun 2013 06:42

AW: Installationspfad Formatieren
 
Sicher darf man das^^

Hintergrund ist folgender:

Ich installiere eine Anwendung welche über eine Textbasierte Konfigurationsdatei bearbeitet wird und wo spezifische Pfadangaben eingetragen werden.
Eine Pfadangabe muss leider wie vorab erwähnt im Format "XYZ:\Programme\Hilfe ich bin Variabel\Immer noch Variabel\" eingetragen werden da sie mit der Definition "Program Files" leider nicht arbeiten kann.
Diesen Pfad lasse ich nach der Installation automatisch übers Setup durch ne StringList in die Datei eintragen.
Nun will ich dem Benutzer aber dennoch die Gelegenheit bieten etwas Variabel zu bleiben, deswegen soll er auch die Möglichkeit haben Partition und Sub-Folder vorgeben zu dürfen.
Sobald ich das mache kann ich mir in Inno Setup den Pfad mit {app} holen und ihn in meine Einzelteile aufteilen, wobei ich an zweiter Stelle manuell "Programme" eintragen werde.

ich hoffe ich konnte mich halbwegs verständlich ausdrücken.

baumina 19. Jun 2013 07:39

AW: Installationspfad Formatieren
 
Unabhängig vom Sinn der Aktion hätte ich dir hier einen Lösungsweg:
Delphi-Quellcode:
  S := 'c:\Programme\test und mehr\xxx';
  Delete(S, 1, length(ExtractFileDrive(S)));
  if IsPathDelimiter(S,1) then
  begin
    Delete(S, 1, 1);
  end;
  If copy(AnsiLowerCase(S), 1, 10) <> IncludeTrailingPathDelimiter('programme') then
  begin
    showmessage('der Pfad muss "Programme" lauten');
  end else
  begin
    showmessage('OK');
  end;

Furtbichler 19. Jun 2013 07:50

AW: Installationspfad Formatieren
 
Wie wäre es mit zwei Eingabefeldern und einem Label dazwischen?

[Drive]:\Programme\[Dein Part]

Wobei die in [...] eingeschlossenen Bereiche jeweils ein Eingabefeld bezeichnen. Beim [Drive] kannst Du sogar eine Combobox nehmen.

Diese Eingabe hätte den netten Nebeneffekt, das sonnenklar ist, das dort '\Programme' stehen muss. Bei allen anderen Ideen müsstest Du das extra erklären und eine Prüfroutine einbauen (gut, die ist nun nicht sonderlich schwierig).

Bernhard Geyer 19. Jun 2013 07:53

AW: Installationspfad Formatieren
 
Zitat:

Zitat von bennySB (Beitrag 1218976)
Eine Pfadangabe muss leider wie vorab erwähnt im Format "XYZ:\Programme\Hilfe ich bin Variabel\Immer noch Variabel\" eingetragen werden da sie mit der Definition "Program Files" leider nicht arbeiten kann.

Und diesen Fehler beseitigen statt ihn Aufwändig zu umschiffen geht nicht?
Kann es sein das überhaupt nicht mit Pfadangaben mit Leerzeichen gearbeitet werden kann?

bennySB 19. Jun 2013 08:00

AW: Installationspfad Formatieren
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1218980)
Und diesen Fehler beseitigen statt ihn Aufwändig zu umschiffen geht nicht?
Kann es sein das überhaupt nicht mit Pfadangaben mit Leerzeichen gearbeitet werden kann?

Nee den Fehler beseitigen kann ich leider nicht da das Programm von einem Drittanbieter ist und daran nichts weiter gemacht wird.
Leerzeichen werden keine Verwendet in der Pfadangabe, das ist nicht das Problem^^


Zitat:

Zitat von Furtbichler (Beitrag 1218979)
Wie wäre es mit zwei Eingabefeldern und einem Label dazwischen?

[Drive]:\Programme\[Dein Part]

Wobei die in [...] eingeschlossenen Bereiche jeweils ein Eingabefeld bezeichnen. Beim [Drive] kannst Du sogar eine Combobox nehmen.

Diese Eingabe hätte den netten Nebeneffekt, das sonnenklar ist, das dort '\Programme' stehen muss. Bei allen anderen Ideen müsstest Du das extra erklären und eine Prüfroutine einbauen (gut, die ist nun nicht sonderlich schwierig).

Das ist ein guter Gedankenanstoß, da werde ich mal schauen wie ich das einpflegen kann.



Ich liebe dieses Forum hier, hier wird einem immer so flott geholfen^^

baumina 19. Jun 2013 08:12

AW: Installationspfad Formatieren
 
Zitat:

Zitat von Furtbichler (Beitrag 1218979)
Wie wäre es mit zwei Eingabefeldern und einem Label dazwischen?

[Drive]:\Programme\[Dein Part]

Wobei die in [...] eingeschlossenen Bereiche jeweils ein Eingabefeld bezeichnen. Beim [Drive] kannst Du sogar eine Combobox nehmen.

Diese Eingabe hätte den netten Nebeneffekt, das sonnenklar ist, das dort '\Programme' stehen muss. Bei allen anderen Ideen müsstest Du das extra erklären und eine Prüfroutine einbauen (gut, die ist nun nicht sonderlich schwierig).

Nachteil dabei wäre, dass Schreibfehler im hinteren Teil entstehen können, weil kein Verzeichnisauswahl-Fenster mehr benutzt wird. (z.B. vorhandener Pfad "c:\Programme\Test\Hierher" -> Pfadeingabe "Tst\Hierher" und Schwupps gibt's ein neues Verzeichnis "Tst")

Bernhard Geyer 19. Jun 2013 08:56

AW: Installationspfad Formatieren
 
Zitat:

Zitat von bennySB (Beitrag 1218985)
Leerzeichen werden keine Verwendet in der Pfadangabe, das ist nicht das Problem^^

Und wie soll das sicher gestellt werden das "Hilfe ich bin Variabel" nicht mit leerzeichen angelegt wird?

Falls das Programm vom Drittanbieter von dir gestartet wird könntest du doch die Exe mit den kurzen Pfadangaben starten.

generic 19. Jun 2013 09:18

AW: Installationspfad Formatieren
 
Zitat:

Zitat von bennySB (Beitrag 1218976)
Ich installiere eine Anwendung welche über eine Textbasierte Konfigurationsdatei bearbeitet wird und wo spezifische Pfadangaben eingetragen werden.
Eine Pfadangabe muss leider wie vorab erwähnt im Format "XYZ:\Programme\Hilfe ich bin Variabel\Immer noch Variabel\" eingetragen werden da sie mit der Definition "Program Files" leider nicht arbeiten kann.

Mir erscheint das etwas wackelig.
Wie wäre es mit relativen Pfadangaben?
Es ist ein Problem mit Leerzeichen oder Verzeichnis-Berechtigungen?
Du weißt das seit Windows Vista es keine "Programme" Ordner mehr gibt?
Zumindest nicht physikalisch.
Hinzu kommt das "Programme" nicht sehr international ist und du ggf. ausländische Windowse damit verunhübscht.

bennySB 19. Jun 2013 09:24

AW: Installationspfad Formatieren
 
Ja mit den "GetShortName" bin ich gerade zugange um zu sehen ob das hilft.

Das es nur noch über´s UI die Definition Programme gibt ist mir klar, nur bleibt mir bei dem Programm leider keine andere Wahl, außer das mit den Short name klappt, aber das muss ich gerade erst noch einmal testen.

Das Setup an sich wird niemals den Deutschen Raum verlassen, da es eine Anwendung für meine Firma ist und diese nur Deutschlandweit agiert.

bennySB 19. Jun 2013 09:59

AW: Installationspfad Formatieren
 
Durch manuelles Testen konnte ich schon einmal herausfinden das ich mit dieser Variante auf jedenfall Erfolgreich laufe:

"C:\PROGRA~1\DOSBox_CAE2000\PrintOut\SELECT.PCL"

Die variablen Teile des Pfades habe ich mal Fett dargestellt, Programme muss ich wie gesagt noch fest vorschreiben und der kursive Teil ist vom Programm des Drittanbieters so vorgegeben und kann nicht geändert werden.

p80286 19. Jun 2013 10:15

AW: Installationspfad Formatieren
 
Zitat:

Zitat von bennySB (Beitrag 1218997)
Das Setup an sich wird niemals den Deutschen Raum verlassen, da es eine Anwendung für meine Firma ist und diese nur Deutschlandweit agiert.

Tut mir leid, aber das ist etwas blauäugig. Auch wenn ich in Deutschland bei einer deutschen Firma arbeite, flattern mir immer wieder ausländische Dateien auf den Tisch (nicht nur englischsprachige). Und die Pfadnamen sind manchmal echt abenteuerlich.

Gruß
K-H

bennySB 19. Jun 2013 10:20

AW: Installationspfad Formatieren
 
Zitat:

Zitat von p80286 (Beitrag 1219008)
Tut mir leid, aber das ist etwas blauäugig. Auch wenn ich in Deutschland bei einer deutschen Firma arbeite, flattern mir immer wieder ausländische Dateien auf den Tisch (nicht nur englischsprachige). Und die Pfadnamen sind manchmal echt abenteuerlich.

Gruß
K-H

Da stimme ich dir auch zu, jedoch hab ich nicht groß ne andere Wahl.

Ich habe mich nun dazu entschlossen dem Benutzer nicht die Wahl zu lassen das Zielverzeichnis zu wählen, somit habe ich die wenigsten Probleme damit.

Nicht schön, aber es funktioniert^^

Bernhard Geyer 19. Jun 2013 10:27

AW: Installationspfad Formatieren
 
Zitat:

Zitat von bennySB (Beitrag 1218997)
Das Setup an sich wird niemals den Deutschen Raum verlassen, da es eine Anwendung für meine Firma ist und diese nur Deutschlandweit agiert.

Wenn es eh nur Firmenintern ist dann würde ich den Installationspfad komplett fest machen.
Also sowas in der Art C:\<Firmenname>\<AppXY>

[OT]Und wenn dir die Firma eh gehört ("... für meine Firma ...") sollte das ja kein Problem sein.:stupid:[/OT]

bennySB 19. Jun 2013 10:29

AW: Installationspfad Formatieren
 
Naja mit "meiner Firma" hab ich mich bissl blöd ausgedrückt^^

Die Firma für die ich arbeite^^

baumina 19. Jun 2013 10:37

AW: Installationspfad Formatieren
 
Zitat:

Zitat von bennySB (Beitrag 1219010)
Ich habe mich nun dazu entschlossen dem Benutzer nicht die Wahl zu lassen das Zielverzeichnis zu wählen, somit habe ich die wenigsten Probleme damit.

Nicht schön, aber es funktioniert^^

Aber das Laufwerk sollte schon ausgewählt werden können.

generic 19. Jun 2013 13:59

AW: Installationspfad Formatieren
 
Zitat:

Zitat von bennySB (Beitrag 1218997)
Das Setup an sich wird niemals den Deutschen Raum verlassen, da es eine Anwendung für meine Firma ist und diese nur Deutschlandweit agiert.

Das ist deinem englischen Windows 7 egal. Das zeigt dir nur paar Sachen durch miese Tricks auf deutsch an.

Geh mal in die Shell und schreib mal
Code:
dir c:\
Code:
17.04.2013  11:42    <DIR>         dell
09.01.2013  04:25    <DIR>         Drivers
05.06.2013  11:25    <DIR>         inetpub
17.04.2013  11:42    <DIR>         Intel
25.01.2013  14:27    <DIR>         NVIDIA
14.07.2009  05:20    <DIR>         PerfLogs
07.06.2013  10:04    <DIR>         Program Files
19.06.2013  13:57    <DIR>         Program Files (x86)
23.01.2013  16:26    <DIR>         Users
19.06.2013  11:25    <DIR>         Windows
Wohl gemerkt, dass ist ein deutschen Windows 7!

bennySB 19. Jun 2013 14:09

AW: Installationspfad Formatieren
 
Ja diese Tatsache hat sich mir schon in den Kopf gebrannt^^
Bin vorher noch davon ausgegangen das "Programme" noch auf deutschen Betriebssystemen vorhanden sind und die umwandlung von "Program Files" nur bei ner Deutschen UI zum tragen kommt.

Jetzt bin ich ja schlauer und habe es ja auch zum laufen gebracht.
Dank der tollen Hilfe hier immer *gg*

Bernhard Geyer 19. Jun 2013 14:47

AW: Installationspfad Formatieren
 
Zitat:

Zitat von bennySB (Beitrag 1219047)
Jetzt bin ich ja schlauer und habe es ja auch zum laufen gebracht.

Und die verwendete Lösung ist jetzt ... :gruebel:

bennySB 19. Jun 2013 14:57

AW: Installationspfad Formatieren
 
Da ich jetzt auch unterwegs bin kann ich es leider nicht Posten, aber ich nehme dem Benutzer einfach die Berechtigung den Pfad selbst zu wählen und installiere es in einem festen Verzeichnis und arbeite dann weiter mit dem shortpath von Programme.

Mal schauen vielleicht hebe ich Öhm noch die Wahl wenigstens die Partition zu wählen, aber das ist erstmal nicht wichtig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz