Ich musste meiner PATH-Variablen einen neuen Eintrag hinzufügen. Dies ist eine häufige Aktivität für mich in meinem Job, aber ich habe kürzlich angefangen, Windows 8 zu verwenden. Ich bin davon ausgegangen, dass der Prozess Windows 7, Vista, XP ähnelt ...
Hier ist meine Abfolge von Ereignissen:
- Öffnen Sie die Systemeigenschaften (Start-> [Typ "Systemsteuerung"] -> Systemsteuerung \ System und Sicherheit \ System -> Erweiterte Systemeinstellungen -> Umgebungsvariablen).
- Füge den neuen Pfad zum Anfang meiner USER PATH-Variablen hinzu (C: \ dev \ Java \ apache-ant-1.8.4 \ bin;)
- Öffnete eine Eingabeaufforderung (Start -> [Typ "Eingabeaufforderung" eingeben] -> [Typ "Pfad" eingeben]
Mein neuer Pfadeintrag ist nicht verfügbar (siehe angehängte Bilder und Videos). Ich habe genau den gleichen Prozess auf einem Windows 7-Computer dupliziert und es hat funktioniert.
BEARBEITEN
Windows 8-Umgebungsvariablen und Eingabeaufforderungsvideo
BEARBEITEN
Dies ist definitiv nicht das Verhalten von Windows 7. In diesem Video wird das erwartete Verhalten unter Windows 7 gezeigt. Http://youtu.be/95JXY5X0fII
EDIT 31.05.2013
Also habe ich nach viel Frust eine kleine C # -App geschrieben, um das WM_SETTINGCHANGE
Event zu testen . Dieser Code empfängt das Ereignis sowohl in Windows 7 als auch in Windows 8. In Windows 8 auf meinem System erhalte ich jedoch nicht den richtigen Pfad. aber ich mache in Windows 7. Dies konnte nicht in anderen Windows 8-Systemen reproduziert werden.
Hier ist der C # -Code.
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
ist äquivalent zu WM_SETTINGCHANGE
C # -Programm, das unter Windows 7 ausgeführt wird (Sie können sehen, dass das Ereignis eintrifft und den richtigen Pfad ermittelt).
C # -Programm, das unter Windows 8 ausgeführt wird (Sie können sehen, dass das Ereignis durchgelaufen ist, aber der falsche Pfad).
Es gibt etwas an meiner Umgebung, das dieses Problem auslöst. Ist dies jedoch ein Windows 8-Fehler?
EDIT 2014-04-28
Aufgrund dieses und mehrerer anderer Probleme wird Windows 8 auf dem Desktop nicht mehr verwendet. Wir haben keine Umgebung, um mit diesem Problem weiter zu testen und zu experimentieren. Es gibt noch keine Antwort oder Lösung für dieses Problem für uns. Die folgenden Antworten haben unser Problem nicht gelöst.
cmd
als eine neue Instanz gestartet wurde. Natürlich hat der bereits laufende cmd
die aktualisierte Umgebung nicht bekommen.