Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Umgebungsvariable setzen


11 replies to this topic

Dietmar

Dietmar
  • Members
  • 21 posts

Posted 15 February 2001 - 16:31

Hallo
IS Prof 6.1
Die Funktion GetEnvVar ermittelt den aktuellen Wert einer Umgebungsvariablen.
Aber wie kann man  eine Umgebungsvariable setzen(am besten im Skript). Das soll möglichst in allen Betriebsystem funktionieren. (Nicht nur in WindowsNT)  
Vielleicht kann mir auch noch  jemand erklären was es mit: "Registerkarte Variablen (Dialogfeld Build-Einstellungen)" auf sich hat, so recht kapiere ich das nicht. Kann man damit auch eine Umgebungsvariable setzen, und wie kann ich ihr einen Wert zuweisen?
(Hinweis:  Ich möcht keine Umgebungsvariable in eine Batch-Datei schreiben.)
Danke vorab!
Dietmar

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 15 February 2001 - 20:14

Globale Umgebungsvariablen werden unter NT in die regsitry eingetragen, unter Win9X in die Autoexec.bat (Reboot erforderlich).

Die Registerkarte hat damit nichts zu tun. Hier kann man z.B. das Verzeichnis auf dem Entwicklungsrechner, in dem die ins Setup einzufügenden Programmdateien liegen, über einen Registry-Eintrag oder eine Umgebungsvariable festlegen. Dann steht in der Projektdatei nur eine Referenz auf diese variable, und wenn das Verzeichnis verschoben wird (oder das prog´jekt auf einem anderen Rechner bearbeitet wird) muss man nicht alle Dateigruppen nachbearbeiten. Funktioniert aber leider nur mit dynamischen Dateigruppen.


Dietmar

Dietmar
  • Members
  • 21 posts

Posted 16 February 2001 - 10:20

Hallo Stefan,
danke für deine promte Antwort.
Ich bin mit der angebotenen Lösung zum Thema Globale Umgebungsvariablen nicht ganz glücklich. Ich möchte in jedem Fall ein Reboot vermeiden.
Ich überlege, ob ich nicht mit Kommandozeilenbefehlen Globale Variablen setzen kann. Vielleicht kannst du mir dabei noch etwas weiterhelfen. Wie könnte ich das am geschicktesten anstellen.
Danke vorab
Dietmar

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 16 February 2001 - 17:11

Für ein einzelnes gestartetes programm wäre das möglich (über entsprechende Windows API Aufrufe) oder für eine eizelne DOS-Box. Aber um eine Environmentvariable global für das gesamte System zu setzen, ist unter Win95/98 ein Reboot unerlässlich, soweit ich weiss.

Dietmar

Dietmar
  • Members
  • 21 posts

Posted 16 February 2001 - 17:30

Hallo Stefan
Ich gebe noch nicht auf.
Wenn ich eine DLL schreibe, und Daten von IS aus in diese DLL übergebe, kann ich dann in dieser DLL Umgebungsvariablen setzen?
Nochmals danke
Dietmar

MarkoK

MarkoK
  • Full Members
  • 48 posts

Posted 20 February 2001 - 15:48

du kannst keine Umgebungsvariable dll-lokal setzen. Wie sTefan schon ausführte, musst du sie global anlegen und rebooten, damit sie gesetzt wird. Es gibt da leider keine andere Möglichkeiten. alternativ könntest du dir einen Registry-Key basteln, der den von dir benötigten Wert enthält. Diesen könntest du in der DLL auslesen.


Dietmar

Dietmar
  • Members
  • 21 posts

Posted 21 February 2001 - 12:13

Hallo
Ich habe eine Batch-Datei erstellt.
Mit der Funktion BatchAdd (Fügt einer Batch-Datei eine Umgebungsvariable hinzu.) habe ich folgende Anweisung eingeschrieben:
SET BFSUSER=Beispieluser
Mit der Funktion LauchApp habe ich die Batch-Datei ausgeführt.
Die Umgebungsvariable existiert nicht.
Worin liegt mein Fehler?
Danke Dietmar

Jan Becker

Jan Becker
  • Members
  • 285 posts

Posted 21 February 2001 - 12:21

der fehler liegt darin, dass die umgebungsvariable nur fuer den aktuellen prozess (was auch immer mit LaunchAppAndWait gestartet wird) und dessen kindprozesse gilt. um systemweite umgebungsvariablen zu setzen, musst du die autoexec.bat bemuehen. dazu ist in windows wohl oder uebel ein neustart erforderlich.

Herwig Schmidhuber

Herwig Schmidhuber
  • Members
  • 7 posts

Posted 21 February 2001 - 12:55

Wenn Du Umgebungsvariablen in die Autoexec.bat schreibst,
so werden diese bei der Deinstallation nicht mehr
berücksichtigt.
Diese Einträge müssen über das Skript wieder
entfernt werden.

Herwig


RobRob

RobRob
  • Members
  • 5 posts

Posted 26 September 2001 - 12:17

Hallo,
wie kann ich denn bei der Deinstallation dann meinen Eintrag aus der Autoexec.bat wieder löschen. Meinen Pfad setze ich mit    PATH C:\TEST;"%PATH%"
Mit BatchDeleteEx kann ich jedoch nur alle PATH Einträge und mit FileDeleteLine einen Zeilenbereich löschen. Ich möchte aber die alten bzw. nachträglichen Einträge alle behalten und nur meinen Eintrag, egal an welcher Stelle in der Autoexec.bat bei der Deinstallation wieder löschen.
Danke vorab

MKaiser

MKaiser
  • Full Members
  • 88 posts

Posted 26 September 2001 - 16:10

Schreib dir ne eigene Konfigurationsbatch-Datei die mit ins Ziel-Verzeichns kopiert wird. Dann rufst du diese in der Autoexec auf und schon bist du alle Sorgen los...

RobRob

RobRob
  • Members
  • 5 posts

Posted 27 September 2001 - 10:05

Danke für die Antwort. Ich hab aber noch eine andere Lösung gefunden.
Erst mit "FileGrep" die Zeile meines Strings herausfinden und anschließend mit "FileDeleteLine" diese Zeile löschen. Fertig.