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

Probleme mit der %PATH% und der %SYSTEMROOT% Variablen


9 replies to this topic

Markus Aigner

Markus Aigner
  • Members
  • 13 posts

Posted 25 February 2002 - 16:45

Hallo, ich habe folgendes Problem.
Ich hole mir zuerst aus der Registry die aktuele PATH-Variable (mit RegDBGetKeyValueEx("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment", "Path", nvType, szValue, nvValueSize))
dann füge ich eigene Pfade hinzu und schreibe den ganzen String wieder in die Registry.

Wenn ich danach in einer "cmd" z.B. ftp aufrufe wird dieser Befehl nicht gefunden. Die SYSTEMROOT-Variable ist aber gesetzt. In der PATH-Variable steht sie auch drinnen.

Nach einem Neustart habe ich immer noch das selbe Problem.

Wenn ich aber in "Systemsteuerung->System..." zuerst den Wert aus PATH ausschneide, das ganze mit OK verlasse, danach den ausgeschnitten Pfad wieder einfüge, kann ich einwandfrei wieder in "cmd" arbeiten!

Kennt jemand dieses Problem und kann mir helfen?

Danke,

Markus


Perotin

Perotin
  • Full Members
  • 407 posts

Posted 25 February 2002 - 17:20

hast Du nach dem Ändern des PATH-Strings auch folgendes gemacht ... ?
Code Sample

#define HWND_BROADCAST      0xFFFF
#define WM_SETTINGCHANGE    0x001A

...

function FlushRegistry()

STRINGszEnv;
POINTER pEnv;

begin
// Flush the NT registry to all applications.
  szEnv = "Environment";
  pEnv = &szEnv;
  SendMessage( HWND_BROADCAST, WM_SETTINGCHANGE, 0, pEnv );
end;

(Edited by Perotin at 5:23 pm on Feb. 25, 2002)


Markus Aigner

Markus Aigner
  • Members
  • 13 posts

Posted 26 February 2002 - 08:40

Hatte ich noch nicht! Nachdem ich Dein Codebeispiel hinzugefügt hatte, trat aber immer noch das gleiche Problem auf!
Hast Du noch eine Idee?

Markus


MKaiser

MKaiser
  • Full Members
  • 88 posts

Posted 26 February 2002 - 10:31

wenn du so den Pfad änderst, musst du nen Reboot machen, ansonsten ist der Pfad nicht gültig.
btw. Speicherst du den neuen  Pfad mit REGDB_STRING_EXPAND wieder zurück? Ansonsten gibts so lustige Effekte wie früher nach einer MATLAB-Installation...

Markus Aigner

Markus Aigner
  • Members
  • 13 posts

Posted 26 February 2002 - 11:54

Also so wie es aussieht funktiniert es so!
Dankeschön!!!

Perotin

Perotin
  • Full Members
  • 407 posts

Posted 26 February 2002 - 16:56

... das so bezieht sich auf REGDB_STRING_EXPAND ?
Wenn ich mich recht erinnere, muss das wegen des Einfügens von Variablen in den Pfad (eben zB %SYSTEMROOT%) als solches und nicht als normaler REGDB_STRING eingetragen werden ...

Markus Aigner

Markus Aigner
  • Members
  • 13 posts

Posted 27 February 2002 - 07:32

Genau, es bezieht sich auf REGDB_STRING_EXPAND! Da kann man die Doku noch so oft lesen, so etwas übersieht man einfach!

Perotin

Perotin
  • Full Members
  • 407 posts

Posted 27 February 2002 - 10:50

btw: bei einer ähnlichen Situation habe ich das Problem wohl deswegen nicht gehabt, weil ich beim Auslesen des Pfades auch direkt den Typen erhalte und diesen Typen dann beim Zurückschreiben verwandte, ohne auf einen REGDB_ ... Eintrag zu verwenden. Anscheinend Glück gehabt :-)

Markus Aigner

Markus Aigner
  • Members
  • 13 posts

Posted 27 February 2002 - 11:17

Mist, jetzt klappt es doch nicht!
Ich habe jetzt folgendes Problem:
Wenn ich nach dem Setup gleich in eine "cmd" wechsle kann ich ftp noch aufrufen, allerdings findet er dann die vom Setup eingetragen Pfade nicht!
Nach einem Neustart oder nach neu anmelden findet er zwar die Pfade aber den ftp nicht mehr!

Was mache ich noch falsch?


MKaiser

MKaiser
  • Full Members
  • 88 posts

Posted 28 February 2002 - 10:33

Du solltest anstatt der InstallShield eigenen PathAdd Funktionen lieber das hier auf der Seite zu findende MyPath-Funktionen Paket benutzen, welches mein Kollege zur Verfügung gestellt hat. Evtl. funktioniert das ja besser.

Gruß,
Marko