Zitat von
Guido Eisenbeis:
Ich habe in der Registry den Wert für 'LOGONSERVER' geändert und dann sowohl mit Delphi als auch in der DOS-Konsole überprüft. Weder in Delphi noch in der Konsole hat sich der Wert geändert! Das würde doch die oben stehende Aussage bestätigen, dass das System-Enviroment unverändert bleibt, sogar wenn der oben genannte Registry-Eintrag geändert wird?
Nein, nein, Missverständnis:
Eine Änderung der Registry führt nicht zu einer Änderung der Umgebungsvariabeln und umgekehrt, was ich sagen wollte ist:
Den Wert in der Registry kannst Du genauso manipulieren, wie den Wert der Umgebungsvariabeln. D. h.: Zu Laufzeit Deines Programmes hast Du keine 100%ige Sicherheit, dass die Umgebungsvariabeln noch den ursprünglichen Wert enthalten, ebenso könnte jemand die Einträge in der Registry geändert haben. Beides ginge am Einfachsten durch Aufruf Deines Programmes per Batch, mit vorheriger Manipulation innerhalb des Batchs. Die Batchdatei bekommt beim Ausführen ihre eigene Umgebung, kann dann damit "machen was sie will" und die so veränderte Umgebung ist dann das System-Enviroment für Dein Progamm. Neben LOGONSERVER könnte ja auch PATH geändert werden, aber deshalb suchen wir in unseren Programmen nicht danach, ob es noch eine andere Möglichkeit gibt, an den Suchpfad zu kommen.
Änderungen der Registry aus einem Batch könnten dann eher dauerhaft sein (bis zum Neustart des Systems?).
Zugegeben halte ich die Diskussion für eher akademisch.
An einem normalen System solltest Du Dich sowohl auf die Umgebungsvariabeln, als auch auf die Einträge in der Registry verlassen können. Andernfalls müsste "jemand" hergehen und bewußt diese Einträge ändern, um Dir bei Deinem Programm Probleme "zubeschaffen".
Bei meiner Arbeit als Administrator käme ich bei meinen eigenen Systemen nicht auf die Idee, hier eine Manipulation zu erwarten, wer da was manipulieren will, sucht sich sicherlich nicht ganz so banale Dinge.