Set Environment Variable

Set Environment Variable
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam!
Zostałem posiadaczem następującego problemu :

Zmieniam wartość Zmiennej systemowej za pomocą takiego oto kodu:

Kopiuj
Environment.SetEnvironmentVariable(name, value, EnvironmentVariableTarget.Machine);

jak sobie zerknę w Zmiennych systemowych na wartość interesującej mnie zmiennej to widzę że wpis został zmieniony. Niestety użycie :

Kopiuj
Environment.GetEnvironmentVariable(name)

zwraca mi poprzednią wartość...
Zmiana jest widoczna dopiero po np wylogowaniu. Jeśli modyfikuję wartość zmiennej za pomocą "edytuj" GetEnvironment... zwraca mi aktualną wartość

Próbowałem też edytować wartość poprzez dwa programy :

http://barnyard.syr.edu/~vefatica/#SETENV

i za pomocą narzędzia setx.exe

http://www.microsoft.com/downloads/details.aspx?FamilyId=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=en

niestety z marnym skutkiem, jedyny sposób na zmianę wartości bez wylogowywania się jaki znalazłem to "Edytuj".
Ma ktoś jakiś pomysł jak dokonać modyfikacji by była widoczna bez wylogowania?

PcSA
  • Rejestracja: dni
  • Ostatnio: dni
0

Zamień:

Kopiuj
Environment.GetEnvironmentVariable(name);

na

Kopiuj
Environment.GetEnvironmentVariable(name, EnvironmentVariableTarget.Machine);

Twoje Get nie działa gdyż pobierasz zmienną z otoczenia procesu, które nie jest aż do przeładowania profilu. Zastosowanie drugiego parametru wymusza pobranie wartości klucza z odpowiedniego miejsca. Poza tym pamiętaj o uprawnieniach - kiedy ustawiasz nowa zmienną dla całej maszyny to musisz posiadać odpowiednie prawa (myślę, że w XP takie coś przejdzie, ale w Win7 na pewno już nie działa - sprawdzony przypadek win7).

PS. Polecam czytać MSDN.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.