Kleine Programme als Portable Anwendungen programmieren?



  • DEvent schrieb:

    Das ist so typisch MS. Wieso einfach, wenn es auch kompliziert geht? Ansatt ins %HOMEPATH% einfach den Pfad (C:/DuE/Username) anzugeben, braucht man auch noch %HOMEDRIVE%.

    Da goenn ich doch ds Unix-Filesystem. Ich schreib einfach alles ins /home/user und mir ist es egal, ob /home/user in einem Netzwerk, auf einem Bandlaufwerk oder auf dem Mond liegt.

    deswegen existiert auch %USERPROFILE%, wie ich aber oben bereits erwähnt habe

    die Trennung besteht, da man dann zum Beispiel innerhalb einer Batch-Datei mittels

    %HOMEDRIVE%
    cd %%HOMEPATH%
    

    in den Benutzerordner gelangt, auch wenn man sich auf nem anderen Laufwerk befindet. ( cd kann nur innerhalb eines Laufwerkes navigieren)



  • SHGetFolderPath



  • DEvent schrieb:

    Da goenn ich doch ds Unix-Filesystem. Ich schreib einfach alles ins /home/user und mir ist es egal, ob /home/user in einem Netzwerk, auf einem Bandlaufwerk oder auf dem Mond liegt.

    Besser man nimmt die Umgebungsvariable HOME. Schade, daß Microsoft nicht die Mühe macht und einfach HOME auf %HOMEDRIVE%/%HOMEPATH% oder was auch immer zu setzen. Dann könnte man selbst unter Windows einfach HOME nehmen und braucht sich nicht darum zu kümmern, daß ein völlig anderes Betriebssystem vorliegt.

    Übrigens fürchte ich, daß das I/O selbst für einfache Konfigurationsdateien ungenügend ist, wenn mein Homeverzeichnis auf dem Mond liegt 😃 .



  • zwutz schrieb:

    DEvent schrieb:

    Das ist so typisch MS. Wieso einfach, wenn es auch kompliziert geht? Ansatt ins %HOMEPATH% einfach den Pfad (C:/DuE/Username) anzugeben, braucht man auch noch %HOMEDRIVE%.

    Da goenn ich doch ds Unix-Filesystem. Ich schreib einfach alles ins /home/user und mir ist es egal, ob /home/user in einem Netzwerk, auf einem Bandlaufwerk oder auf dem Mond liegt.

    deswegen existiert auch %USERPROFILE%, wie ich aber oben bereits erwähnt habe

    die Trennung besteht, da man dann zum Beispiel innerhalb einer Batch-Datei mittels

    %HOMEDRIVE%
    cd %%HOMEPATH%
    

    in den Benutzerordner gelangt, auch wenn man sich auf nem anderen Laufwerk befindet. ( cd kann nur innerhalb einhttp://www.german-bash.org/action/latestes Laufwerkes navigieren)

    Das stimmt nicht cd kann auch das Laufwerk wechseln. Gib einfach mal cd /? ein und schau dir die Flags an.



  • lolz_ausgeloggt schrieb:

    Das stimmt nicht cd kann auch das Laufwerk wechseln. Gib einfach mal cd /? ein und schau dir die Flags an.

    der parameter /D ist mir durchaus bekannt, aber cd ohne Parameter, so wie er oft verwendet wird, kann nur innerhalb des Laufwerkes navigieren.

    tntnet schrieb:

    Besser man nimmt die Umgebungsvariable HOME. Schade, daß Microsoft nicht die Mühe macht und einfach HOME auf %HOMEDRIVE%/%HOMEPATH% oder was auch immer zu setzen. Dann könnte man selbst unter Windows einfach HOME nehmen und braucht sich nicht darum zu kümmern, daß ein völlig anderes Betriebssystem vorliegt.

    das würde schon aus dem Grund schiefgehen, da beide Systeme unterschiedliche Methoden nutzen, Umgebungsvariablen zu kennzeichen. Unter Windows sind sie mit Prozentzeichen eingeschlossen, Unix verwendet das Dollarzeichen am Beginn der Variable



  • %HOME% wenn ich nicht alles täuscht



  • audacia schrieb:

    %USERPROFILE%

    Ist die einzige richtige Lösung, da auf Windows nicht garantiert werden kann, dass das Profile auf C:\...etc liegt.



  • tntnet schrieb:

    Schade, daß Microsoft nicht die Mühe macht und einfach HOME auf %HOMEDRIVE%/%HOMEPATH% oder was auch immer zu setzen. Dann könnte man selbst unter Windows einfach HOME nehmen und braucht sich nicht darum zu kümmern, daß ein völlig anderes Betriebssystem vorliegt.

    Schade, daß sich die Linux-Entwicklercommunity nicht die Mühe macht, einfach %USERPROFILE% auf $HOME zu setzen und auch sonst Linux zu Windows kompatibel zu machen 😉

    Übrigens hat Microsoft sich bereits die Mühe gemacht, allerdings etwas ausführlicher:
    Microsoft Windows Services for UNIX



  • zwutz schrieb:

    das würde schon aus dem Grund schiefgehen, da beide Systeme unterschiedliche Methoden nutzen, Umgebungsvariablen zu kennzeichen. Unter Windows sind sie mit Prozentzeichen eingeschlossen, Unix verwendet das Dollarzeichen am Beginn der Variable

    Ob ich %HOME% oder $HOME verwende, hängt von der Shell ab. Die bash unter Linux verwendet wie auch die sh unter Unix $HOME um den Inhalt der Umgebungsvariable HOME zu liefern. Der Kommandointerpreter von Windows (cmd.exe) verwendet halt %HOME% um das gleiche zu erreichen. In einem C++ oder C-Programm verwende ich getenv("HOME"). Das liefert mir den Wert der Umgebungsvariablen "HOME". Und das ist unabhängig vom Betriebssystem.



  • audacia schrieb:

    tntnet schrieb:

    Schade, daß Microsoft nicht die Mühe macht und einfach HOME auf %HOMEDRIVE%/%HOMEPATH% oder was auch immer zu setzen. Dann könnte man selbst unter Windows einfach HOME nehmen und braucht sich nicht darum zu kümmern, daß ein völlig anderes Betriebssystem vorliegt.

    Schade, daß sich die Linux-Entwicklercommunity nicht die Mühe macht, einfach %USERPROFILE% auf $HOME zu setzen und auch sonst Linux zu Windows kompatibel zu machen 😉

    Übrigens hat Microsoft sich bereits die Mühe gemacht, allerdings etwas ausführlicher:
    Microsoft Windows Services for UNIX

    Die Umgebungsvariable HOME war unter Unix schon auf das Heimatverzeichnis gesetzt, als es noch kein MS-DOS geschweige denn Windows gab. Da wäre es doch eine Kleinigkeit gewesen, wenn man das übernommen hätte. Microsoft hat mit USERPROFILE das Rad neu erfunden - nicht Unix oder Linux.


Anmelden zum Antworten