Gibt es eine Möglichkeit zum festlegen der Umgebungsvariable path programmgesteuert in C++ unter Windows?
Gibt es eine Möglichkeit, um die Globale windows-path-Umgebungsvariable programmgesteuert (C++)?
Soweit ich sehen kann, putenv setzt es nur für die aktuelle Anwendung.
Änderung direkt in der registry (HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment)
ist auch eine option, obwohl ich würde es vorziehen, API-Methoden, wenn es?
InformationsquelleAutor LK. | 2009-02-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
MSDN Sagt:
L
Präfix. Beispiel-code:SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)L"Environment", SMTO_ABORTIFHUNG, 5000, NULL);
InformationsquelleAutor Assaf Lavie
War-wie schon früher gesagt, den PFAD zu ändern auf die Maschine ändern Sie einfach diesen registry-Eintrag:
Aber Sie können auch festlegen, dass der PFAD an der Benutzer-Ebene durch die änderung dieser registry-Eintrag:
- Und Sie können auch festlegen, dass der PFAD an der application level, indem Sie die Anwendung\Pfad details zu diesem registry-Eintrag:
InformationsquelleAutor jussij
Gibt es keine API - änderungen in der registry ist der Weg, es zu tun. Der geänderte Wert wird verwendet für Prozesse, die starten, nachdem die änderung vorgenommen wurde.
Auch: Beachten Sie, dass Anwendungen, die ausgeführt aktiv zu verarbeiten, die Einstellungen geändert-Nachricht und viele (die meisten?) tun Sie dies nicht.
InformationsquelleAutor
Wenn Sie es wollen durch die Registrierung, möchten Sie vielleicht Blick auf den Quellcode von diese Programm.
Microsoft bietet auch ein kleines Kommandozeilen-utility namens setx mit seinen Ressourcen-toolkits, die lassen Sie dies tun. Durch die Möglichkeit, das reguläre set-Befehl ermöglicht die Definition von lokalen Umgebungsvariablen, denke ich.
InformationsquelleAutor drby
Ja, Sie sind richtig.
Sie müssen auch die Auswirkungen dieser Einstellungen, ohne sich abzumelden
Nachricht senden an borad casting für alle windows SETTINGCHANGE für die parameter (LPARAM) "Umgebung" mit SMTO_ABORTIFHUNG für einige Millisekunden(5000) mit SendMessageTimeout-API.
Dies ist, was setX.exe mit resource-Kit gibt.
InformationsquelleAutor lakshmanaraj