Re: Jak zmienic "zmienna srodowiskowa" ?

Autor: Grzegorz Niemirowski <gnthexfiles_at_poczta.onet.pl>
Data: Tue 04 Sep 2007 - 18:11:30 MET DST
Message-ID: <fbk03h$13fp$1@opal.icpnet.pl>
Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=original

Fantom <szczukot@SPAM.poczta.onet.pl> napisał(a):
> Witam
> Chcialbym zmienic sciezke do TEMP. Recznei mozna to zrobic piszac po
> prostu SET TEMP=C:\TEMP. Mozna tez zrobic to we wlasciwosciach kompa.
> Ale mam kilka pytan :
> 1) jak to zrobic z poziomu :kodu" czyli uzywajac np shell.exe itp ?

Trzeba zmodyfikować wpis w rejestrze. W jakim języku?

> 2) po ustawieniu tej zmiennej w rejstrze pojawia sie tak :
> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
> Manager\Environment - oryginalna wartosc
> HKEY_CURRENT_USER\Environment - dla aktualnego usera.
> Mam rozumiec, ze zasze sa ladowane zmienne z tej pierwszej sciezki,
> chyba ze user ma jakies konkretne dla siebie to wtedy te "nieoryginalne"
> sa wazniejsze ? Czyli jak do tej drugiej sciezki przypisze temp=c:\temp to
> zadziala dla tego usera a dla innych nie ?

Tak, są zmienne systemowe i zmienne poszczególnych użytkowników.

> 3) po zmianie w rejestrze tej opcji co trzeba wywolac aby system zaczal
> uzywac nowcyh zmiennych (nie liczac resetu) ?
> Fantom

Trzeba wysłać broadcastowy komunikat powiadamiający o zmianie ustawień:
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)
L"Environment", SMTO_ABORTIFHUNG, 50000, &dwReturnValue);
Kod: http://www.grzegorz.net/programowanie/propagateVariables.cpp
Binarka: http://www.grzegorz.net/pliki/PropagateVariables.exe

-- 
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i aktualności ze świata Outlook Express: grzegorz.net/oe
Uptime: 9 days, 3 hours, 37 minutes and 10 seconds 
Received on Tue Sep 4 18:15:07 2007

To archiwum zostało wygenerowane przez hypermail 2.1.8 : Tue 04 Sep 2007 - 18:42:01 MET DST