Umgebungsvariablen speichern[ERLEDIGT]
Moderator: Moderatoren
- Muecke
- 1000 working lines a day
- Beiträge: 623
- Registriert: Di, 24. Okt 2006 7:19
- Wohnort: Samstagern CH
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 9 Mal
- Kontaktdaten:
Umgebungsvariablen speichern[ERLEDIGT]
Hallo
Ist es möglich einen Wert anzuhängen in der Systemvariablen ohne ein Installationsprogramm auszuführen?
Alaska macht dies ja auch, aber eben mit einem Install Programm.
Gruss Thomas
Ist es möglich einen Wert anzuhängen in der Systemvariablen ohne ein Installationsprogramm auszuführen?
Alaska macht dies ja auch, aber eben mit einem Install Programm.
Gruss Thomas
Zuletzt geändert von Muecke am Di, 04. Sep 2012 16:30, insgesamt 1-mal geändert.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2829
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 97 Mal
- Danksagung erhalten: 13 Mal
Re: Umgebungsvariablen speichern
Hallo,
Du könntest es mit Thomas Braun's Registry Class versuchen. Da es die Umgebungsvariablen auf User-Ebene gibt (\HKEY_CURRENT_USER\ENVIRONMENT) sowie auf Rechner-Ebene (\HKEY_LOCAL_MACHINE\CurrentcontrolSet\Control\Session Manager\Environment) solltest Du überlegen, welche Du anpassen willst.
Dann den alten Wert einlesen, ändern, und zurückschreiben. Das sollte es gewesen sein.
Gruss,
Georg
Du könntest es mit Thomas Braun's Registry Class versuchen. Da es die Umgebungsvariablen auf User-Ebene gibt (\HKEY_CURRENT_USER\ENVIRONMENT) sowie auf Rechner-Ebene (\HKEY_LOCAL_MACHINE\CurrentcontrolSet\Control\Session Manager\Environment) solltest Du überlegen, welche Du anpassen willst.
Dann den alten Wert einlesen, ändern, und zurückschreiben. Das sollte es gewesen sein.
Gruss,
Georg
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- Muecke
- 1000 working lines a day
- Beiträge: 623
- Registriert: Di, 24. Okt 2006 7:19
- Wohnort: Samstagern CH
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 9 Mal
- Kontaktdaten:
Re: Umgebungsvariablen speichern
Georg
Geht leider nicht, keine schreibzugriffe( XbpReg:SetValue )
Gruss Thomas
Geht leider nicht, keine schreibzugriffe( XbpReg:SetValue )
Gruss Thomas
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2829
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 97 Mal
- Danksagung erhalten: 13 Mal
Re: Umgebungsvariablen speichern
Hallo, Thomas -
Du schreibst zu wenig über das Umfeld. Wenn Dein Programm eine solche Zuweisung braucht, geht es eventuell über eine Batch-Datei, die dann auch Dein Programm startet:
Gruss,
Georg
Du schreibst zu wenig über das Umfeld. Wenn Dein Programm eine solche Zuweisung braucht, geht es eventuell über eine Batch-Datei, die dann auch Dein Programm startet:
Code: Alles auswählen
set PATH=%PATH%;c:\irgendwo
set MEINE_OPTION=ON
xbase-pgm.exe
exit
Gruss,
Georg
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- Muecke
- 1000 working lines a day
- Beiträge: 623
- Registriert: Di, 24. Okt 2006 7:19
- Wohnort: Samstagern CH
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 9 Mal
- Kontaktdaten:
Re: Umgebungsvariablen speichern
Nein es geht darum, dass ich nicht bei jedem Kunden auf den PC zugreifen muss,
um Systemvariablen zu erfassen.
Kann ich dies vielleicht auch mit einem Batch erledigen?
Gruss Thomas
um Systemvariablen zu erfassen.
Kann ich dies vielleicht auch mit einem Batch erledigen?
Gruss Thomas
- Dateianhänge
-
- t1.jpg (11.36 KiB) 15584 mal betrachtet
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Umgebungsvariablen speichern
WAS genau verstehst du unter SYSTEMVARIABLEN ?
Wenn es nur um die aus der CMD geht, kann man diese komplett in eine Datei schreiben und einlesen:
das kann man mit runshell erledigen.
Wenn du z.B. den PATH abfragen willst, das geht auch direkt:
Wenn es nur um die aus der CMD geht, kann man diese komplett in eine Datei schreiben und einlesen:
Code: Alles auswählen
CMD-BOX: SET > TEXT.TXT
Wenn du z.B. den PATH abfragen willst, das geht auch direkt:
Code: Alles auswählen
cPath := Getenv("PATH")
Gruß
Hubert
Hubert
- Muecke
- 1000 working lines a day
- Beiträge: 623
- Registriert: Di, 24. Okt 2006 7:19
- Wohnort: Samstagern CH
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 9 Mal
- Kontaktdaten:
Re: Umgebungsvariablen speichern
Hallo Hubert
Ich muss in das Feld -> Variable = Doku schreiben( Name Umgebungsvariable)
Feld -> Wert = d:\dha schreiben(Wert Umgebungsvariable)
Mit Setenv kann ich ja den Wert verändern, aber wie erstelle ich eine neue Umgebungsvariable????
Gruss Thomas
Ich muss in das Feld -> Variable = Doku schreiben( Name Umgebungsvariable)
Feld -> Wert = d:\dha schreiben(Wert Umgebungsvariable)
Mit Setenv kann ich ja den Wert verändern, aber wie erstelle ich eine neue Umgebungsvariable????
Gruss Thomas
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2829
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 97 Mal
- Danksagung erhalten: 13 Mal
Re: Umgebungsvariablen speichern
Hallo, Thomas -
was genau willst Du machen?
Beispiel: Aufruf einer Batch-Datei, die etwas druckt.
Eine Umgebungsvariabel definierst Du in der Eingabeaufforderung (oder in einer Batch-Datei) durch SET wert=, danach ist diese Variable in DEM PROZESS, IN DEM SIE DEFINIERT WURDE! sichtbar. Schliesst Du die Eingabeaufforderung oder endet die Batchdatei, ist die Variable auch weg.
Gruss,
Georg
was genau willst Du machen?
Beispiel: Aufruf einer Batch-Datei, die etwas druckt.
Code: Alles auswählen
nHandle := fCreate("runme.bat")
if nHandle > 0
cLine := "SET DOKU=C:\HA" + CRLF
fWrite(nHandle, cLine, Len(cLine))
cLine := "RR reportxyz.rpx" + CRLF
fWrite(nHandle, cLine, Len(cLine))
cLine := "EXIT"
fWrite(nHandle, cLine, Len(cLine))
fClose(nHandle)
RunShell(...)
else
ConfirmBox()
endif
Gruss,
Georg
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9373
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Umgebungsvariablen speichern
Auch mit SetEnv():aber wie erstelle ich eine neue Umgebungsvariable????
Code: Alles auswählen
SetEnv('Meins','Isses')
? GetEnv('Meins') // 'Isses'
Herzlich,
Tom
Tom
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Umgebungsvariablen speichern
laut Doku ist das möglich, solange die Abfrage aus diesem Prozess heraus gestartet wird:Muecke hat geschrieben:Mit Setenv kann ich ja den Wert verändern, aber wie erstelle ich eine neue Umgebungsvariable????
Handbuch hat geschrieben:Die Funktion Setenv() wird verwendet, um Umgebungsvariablen des Betriebssystems für den aktiven Prozeß neu zu definieren oder den Inhalt bestehender Umgebungsvariablen zu ändern. Diese Änderungen gelten nicht für andere Prozesse, d.h. geänderte Umgebungsvariablen sind nur für das Xbase++ Programm sichtbar, das Setenv() ausführt. Falls ein neuer Prozeß mittels RunShell() gestartet wird, erbt er die Umgebungsvariablen des aktiven Prozesses. Setenv() ist also geeignet, die Umgebungsvariablen für einen neu gestarteten Prozeß zu definieren.
Gruß
Hubert
Hubert
- Muecke
- 1000 working lines a day
- Beiträge: 623
- Registriert: Di, 24. Okt 2006 7:19
- Wohnort: Samstagern CH
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 9 Mal
- Kontaktdaten:
Re: Umgebungsvariablen speichern
Ich versuche dies mal anders zu formulieren
ich bekomme von einem anbieter eine xml datei die ich auf dem pc einfügen muss.
der hersteller gibt mir aber vor, wie die variable heissen muss z.b. KASSE_CONFIG.
so nun muss ich bei jedem kunden eine neue variable erfassen die KASSE_CONFIG heisst mit
dem wert "d:\dha\config.xml
der anbieter braucht dies um gewisse configurationen für seine schnittstelle auszulesen.
Gruss Thomas
ich bekomme von einem anbieter eine xml datei die ich auf dem pc einfügen muss.
der hersteller gibt mir aber vor, wie die variable heissen muss z.b. KASSE_CONFIG.
so nun muss ich bei jedem kunden eine neue variable erfassen die KASSE_CONFIG heisst mit
dem wert "d:\dha\config.xml
der anbieter braucht dies um gewisse configurationen für seine schnittstelle auszulesen.
Gruss Thomas
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Umgebungsvariablen speichern
Dazu brauchst du Schreibrechte auf die Registriy !
Bei Pablo und hier irgendwo auch gibt es ein Beispiel, wie ein Programm sich Admin-Rechte besorgen kann (natürlich muss der Anwender die Kennwörter eingeben).
Bei deinem PC kannst du das für alle User eintragen und nachsehen wo der Inhalt gelandet ist.
ODER du erstellst mit regedit eine Registrierungsdatei mit genau diesem Eintrag.
Ein doppelklick installiert dann den Inhalt (nach Eingabe von Admin Kennwort).
Bei Pablo und hier irgendwo auch gibt es ein Beispiel, wie ein Programm sich Admin-Rechte besorgen kann (natürlich muss der Anwender die Kennwörter eingeben).
Bei deinem PC kannst du das für alle User eintragen und nachsehen wo der Inhalt gelandet ist.
ODER du erstellst mit regedit eine Registrierungsdatei mit genau diesem Eintrag.
Ein doppelklick installiert dann den Inhalt (nach Eingabe von Admin Kennwort).
Gruß
Hubert
Hubert
- Muecke
- 1000 working lines a day
- Beiträge: 623
- Registriert: Di, 24. Okt 2006 7:19
- Wohnort: Samstagern CH
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 9 Mal
- Kontaktdaten:
Re: Umgebungsvariablen speichern
Hubert
dan war ich doch richtig mit der reg klasse.
ich denke ich mache mir ein batch und gebe dies jedem kunde zum installieren.
besten dank.
gruss thomas
dan war ich doch richtig mit der reg klasse.
ich denke ich mache mir ein batch und gebe dies jedem kunde zum installieren.
besten dank.
gruss thomas
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Umgebungsvariablen speichern[ERLEDIGT]
Ich habe mir hier eben mal schnell eine SYSTEMVARIABLE MySystem erstellt und mit Inhalt gefüllt.
Regedit meldet diese genau hier:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Ob man nun einfach nur "CurrentControlSet" setzen muss um eines der Controllsets zu ändern, weiß ich nicht.
Ausprobieren hilft bestimmt
Regedit meldet diese genau hier:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Ob man nun einfach nur "CurrentControlSet" setzen muss um eines der Controllsets zu ändern, weiß ich nicht.
Ausprobieren hilft bestimmt
Gruß
Hubert
Hubert
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9373
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Umgebungsvariablen speichern[ERLEDIGT]
Environmentvariablen stehen ab Windows XP in HKEY_CURRENT_USER\Environment. Dort findet man zum Beispiel die LIB-Settings der Alaska-Installation. Für HKEY_CURRENT_USER sollte eigentlich immer Schreibrechte existieren, sonst wäre diese Gruppe nämlich sinnlos. Was ich dort setze, kann ich auch über GetEnv() abholen.
Herzlich,
Tom
Tom
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Umgebungsvariablen speichern[ERLEDIGT]
Wenn das Programm aber für alle User einen Eintrag haben soll, muss es unter System
Gruß
Hubert
Hubert
- Muecke
- 1000 working lines a day
- Beiträge: 623
- Registriert: Di, 24. Okt 2006 7:19
- Wohnort: Samstagern CH
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 9 Mal
- Kontaktdaten:
Re: Umgebungsvariablen speichern[ERLEDIGT]
ich habe auch noch ein
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Session Manager\Environment
bei allen steht das gleiche drin !!!???
Gruss Thomas
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Session Manager\Environment
bei allen steht das gleiche drin !!!???
Gruss Thomas
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2829
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 97 Mal
- Danksagung erhalten: 13 Mal
Re: Umgebungsvariablen speichern[ERLEDIGT]
Hallo,
seht Euch bitte den zweiten Eintrag in diesem Thread an ...
CurrentControlSet ist das aktive ControlSet, die anderen sind (ältere) Kopien.
Eintragungen unter HKEY_CURRENT_USER gelten nur für den gerade angemeldeten Benutzer. Werden die Änderungen für diesen Benutzer vorgenommen, gelten sie nicht, wenn sich ein anderer am gleichen PC anmeldet, daher sollte man in diesem Fall auf die Einträge unter HKEY_LOCAL_MACHINE zuürckgreifen, denn die gelten dann für alle Benutzer.
Es kommt sonst vor, dass es bei dem einen Benutzer funktioniert und dem anderen nicht, und man sich einen Wolf sucht, wo denn wohl der Unterschied ist.
Gruss,
Georg
seht Euch bitte den zweiten Eintrag in diesem Thread an ...
CurrentControlSet ist das aktive ControlSet, die anderen sind (ältere) Kopien.
Eintragungen unter HKEY_CURRENT_USER gelten nur für den gerade angemeldeten Benutzer. Werden die Änderungen für diesen Benutzer vorgenommen, gelten sie nicht, wenn sich ein anderer am gleichen PC anmeldet, daher sollte man in diesem Fall auf die Einträge unter HKEY_LOCAL_MACHINE zuürckgreifen, denn die gelten dann für alle Benutzer.
Es kommt sonst vor, dass es bei dem einen Benutzer funktioniert und dem anderen nicht, und man sich einen Wolf sucht, wo denn wohl der Unterschied ist.
Gruss,
Georg
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9373
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Umgebungsvariablen speichern[ERLEDIGT]
Hallo, Georg.
Thomas will relative Pfade und Dateinamen speichern, das macht für die lokale Maschine nicht sehr viel Sinn. Möglich, dass alles im Glücksfall mit den Benutzereinstellungen übereinstimmt, aber keineswegs sicher.
Thomas will relative Pfade und Dateinamen speichern, das macht für die lokale Maschine nicht sehr viel Sinn. Möglich, dass alles im Glücksfall mit den Benutzereinstellungen übereinstimmt, aber keineswegs sicher.
Herzlich,
Tom
Tom
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Umgebungsvariablen speichern[ERLEDIGT]
wieso relative Pfade ?Tom hat geschrieben:Hallo, Georg.
Thomas will relative Pfade und Dateinamen speichern, das macht für die lokale Maschine nicht sehr viel Sinn. Möglich, dass alles im Glücksfall mit den Benutzereinstellungen übereinstimmt, aber keineswegs sicher.
Oben steht dies:
d:\dha ist nicht relativMuecke hat geschrieben:Ich muss in das Feld -> Variable = Doku schreiben( Name Umgebungsvariable)
Feld -> Wert = d:\dha schreiben(Wert Umgebungsvariable)
Gruß
Hubert
Hubert