Musiałem dodać nowy wpis do mojej zmiennej PATH. Jest to dla mnie częste działanie, ale ostatnio zacząłem używać systemu Windows 8. Zakładałem, że proces będzie podobny do Windows 7, Vista, XP ...
Oto moja sekwencja wydarzeń:
- Otwórz właściwości systemu (Start-> [wpisz „Panel sterowania”] -> Panel sterowania \ System i zabezpieczenia \ System -> Zaawansowane ustawienia systemu -> Zmienne środowiskowe)
- Dodaj nową ścieżkę do początku mojej zmiennej USER PATH (C: \ dev \ Java \ apache-ant-1.8.4 \ bin;)
- Otwarto wiersz polecenia (Start -> [wpisz „wiersz polecenia” enter] -> [wpisz „path” enter]
Mój nowy wpis ścieżki nie jest dostępny (patrz załączony obraz i wideo). Powieliłem dokładnie ten sam proces na komputerze z systemem Windows 7 i zadziałało.
EDYTOWAĆ
Zmienne środowiskowe Windows 8 i wideo z wierszem polecenia
EDYTOWAĆ
To zdecydowanie nie jest zachowanie systemu Windows 7. Obejrzyj ten film, aby zobaczyć zachowanie, którego oczekuję od pracy w systemie Windows 7. http://youtu.be/95JXY5X0fII
EDYTUJ 31.05.2013
Po wielu frustracjach napisałem małą aplikację w języku C #, aby przetestować to WM_SETTINGCHANGE
wydarzenie. Ten kod odbiera zdarzenie zarówno w systemie Windows 7, jak i Windows 8. Jednak w systemie Windows 8 w moim systemie nie otrzymuję prawidłowej ścieżki; ale robię to w systemie Windows 7. Nie można tego odtworzyć w innych systemach Windows 8.
Oto kod C #.
using System;
using Microsoft.Win32;
public sealed class App
{
static void Main()
{
SystemEvents.UserPreferenceChanging += new UserPreferenceChangingEventHandler(OnUserPreferenceChanging);
Console.WriteLine("Waiting for system events.");
Console.WriteLine("Press <Enter> to exit.");
Console.ReadLine();
}
static void OnUserPreferenceChanging(object sender, UserPreferenceChangingEventArgs e)
{
Console.WriteLine("The user preference is changing. Category={0}", e.Category);
Console.WriteLine("path={0}", System.Environment.GetEnvironmentVariable("PATH"));
}
}
OnUserPreferenceChanging
jest równa WM_SETTINGCHANGE
Program C # działający w systemie Windows 7 (możesz zobaczyć, jak zdarzenie się pojawia i wybiera właściwą ścieżkę).
Program C # działający w systemie Windows 8 (można zobaczyć, że wydarzenie się pojawiło, ale zła ścieżka).
W moim środowisku jest coś, co przyspiesza ten problem. Czy jest to jednak błąd systemu Windows 8?
EDYCJA 28.04.2014
Z powodu tego i kilku innych problemów nie używamy już systemu Windows 8 na pulpicie. Nie mamy środowiska, aby kontynuować testowanie i eksperymentowanie z tym problemem. Nadal nie ma dla nas odpowiedzi ani rozwiązania tego problemu. Poniższe odpowiedzi nie rozwiązały naszego problemu.
cmd
podczas uruchamiania nowej instancji. Oczywiście działające cmd
już nie otrzymało zaktualizowanego środowiska.