maw*_*sco 21 command-line environment-variables windows-8
我需要在我的 PATH 变量中添加一个新条目。这是我工作中的一项常见活动,但我最近开始使用 Windows 8。我认为该过程类似于 Windows 7、Vista、XP...
这是我的事件序列:
我的新路径条目不可用(见附图和视频)。我在 Windows 7 机器上复制了完全相同的过程并且它起作用了。

编辑
编辑
这绝对不是 Windows 7 的行为。观看此视频以了解我期望在 Windows 7 中工作的行为。http://youtu.be/95JXY5X0fII
编辑 5/31/2013
因此,在经历了很多挫折之后,我编写了一个小型 C# 应用程序来测试该WM_SETTINGCHANGE事件。此代码在 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"));
}
}
Run Code Online (Sandbox Code Playgroud)
OnUserPreferenceChanging 相当于 WM_SETTINGCHANGE
在 Windows 7 中运行的 C# 程序(您可以看到事件通过并选择了正确的路径)。
在Windows 8 中运行的C# 程序(可以看到事件通过,但路径错误)。
我的环境中有一些因素导致了这个问题。但是,这是 Windows 8 的错误吗?
编辑 2014-04-28
由于这个问题和其他几个问题,我们不再在桌面上使用 Windows 8。我们没有继续测试和试验这个问题的环境。对我们来说,这个问题仍然没有答案或解决方案。下面的答案没有解决我们的问题。
如果您从开始菜单或任务栏上的快捷方式启动命令提示符,您必须:
explorer。杀死它并重新启动它。explorer)。explorer)。环境不会立即更新,因为环境是从它们的父进程继承而来的,除了explorer,它在登录时由系统启动。这就是它在我的 Windows 7 系统上的表现。
因此,更改环境变量会更新注册表项,但在系统必须为某个正在启动的进程构建新的登录环境之前,不会重新读取这些项。大多数情况下,这不会发生,因为进程是已有环境的进程的子进程,因此环境是继承的。
| 归档时间: |
|
| 查看次数: |
19791 次 |
| 最近记录: |