PATH変数に新しいエントリを追加する必要がありました。これは仕事でよくあることですが、最近Windows 8を使い始めました。プロセスはWindows 7、Vista、XPに似ていると思いました...
イベントのシーケンスは次のとおりです。
- システムのプロパティを開きます(スタート-> [タイプ "コントロールパネル"]->コントロールパネル\システムおよびセキュリティ\システム->システムの詳細設定->環境変数)
- USER PATH変数の先頭に新しいパスを追加します(C:\ dev \ Java \ apache-ant-1.8.4 \ bin;)
- コマンドプロンプトを開きました(スタート-> [タイプ "コマンドプロンプト" Enter]-> [タイプ "パス" Enter]
新しいパスエントリは使用できません(添付の画像とビデオを参照)。Windows 7マシンでまったく同じプロセスを複製し、機能しました。
編集
編集
これは間違いなくWindows 7の動作ではありません。このビデオを見て、Windows 7での動作を期待してください。http://youtu.be/95JXY5X0fII
編集5/31/2013
そのため、多くのフラストレーションの後、WM_SETTINGCHANGE
イベントをテストするための小さなC#アプリを作成しました。このコードは、Windows 7とWindows 8の両方でイベントを受け取ります。ただし、システム上のWindows 8では、正しいパスが取得されません。しかし、私はWindows 7で行います。これは他のWindows 8システムでは再現できませんでした。
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
に等しい WM_SETTINGCHANGE
Windows 7で実行されているC#プログラム(イベントが通過し、正しいパスを取得することがわかります)。
Windows 8で実行されているC#プログラム(イベントは通過しますが、パスが間違っています)。
私の環境には、この問題を引き起こしているものがあります。しかし、これはWindows 8のバグですか?
編集2014-04-28
この問題および他のいくつかの問題により、デスクトップでWindows 8を使用しなくなりました。この問題をテストおよび実験し続ける環境はありません。この問題に対する回答や解決策はまだありません。以下の回答では問題を解決できませんでした。
cmd
、新しいインスタンスが起動されたときに新しい環境変数が表示されていました。もちろん、すでに実行cmd
されている環境は更新された環境を取得していません。