EnvironmentManager 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
用于读取和写入环境变量的类。
public ref class EnvironmentManager sealed
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Windows.System.EnvironmentManagerContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class EnvironmentManager final
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Windows.System.EnvironmentManagerContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class EnvironmentManager
Public NotInheritable Class EnvironmentManager
- 继承
- 属性
注解
API 添加了对环境变量的跟踪,用于干净地卸载应用编写的环境项目。 跟踪还支持在卸载应用时还原以前编写的跟踪变量。
对于打包的应用,将跟踪使用新 API 创建或修改的变量。 未使用新 API 创建或修改的变量将继续不进行跟踪。
平台可以跟踪打包应用的卸载,但对于未打包的应用,则无法跟踪卸载。 对于未打包的应用,依赖于应用自己的卸载程序来清理环境变量。 未打包的应用可以在卸载时提供自己的清理,方法是使用空字符串(或 RemoveFromPath)调用 SetEnvironmentVariable API,但这会从 PATH 变量中删除路径,不会将其还原到以前的状态。
卸载包时,会触发环境清理和还原。
- 应用创建的任何变量都被删除。
- 如果变量最初不是由应用创建的,而是上次由应用修改的,则其值将还原到另一个应用设置的最后一个值。
- 除使用这些 API 以外的机制进行的变量更改 (例如,用户通过 RegEdit) 进行手动更改时,将考虑在内。
注意
将变量设置为空字符串的应用会有效地删除该变量,并且不应设置任何新值。
需要注意的一些其他事项:
- 系统不使用注册表侦听器。 因此,它知道某些内容是否已更改的唯一方法是调用方是否使用这些 API 来创建或修改变量,或者已执行此操作的应用是否已卸载。
- 系统不会跟踪 API 外部所做的更改;并且不会跟踪未打包应用的卸载。
- 卸载打包应用后,将删除它创建的任何变量,无论该变量在其生存期内 (跟踪或未跟踪) 进行的任何其他更改。
- 如果未使用这些 API 创建变量,则在卸载打包的应用时不会删除该变量,而是还原该应用 (通过 API) 进行的最后一次更改。
- 点菜应用 具有标识,但未按照安装打包应用的方式进行安装。 没有可靠的方法来检测何时卸载点菜应用。 因此,虽然将跟踪由点菜应用创建的/写入的变量,但卸载应用时不会清理该变量。
属性
AreChangesTracked |
获取一个值,该值指示是否跟踪环境变量更改。 |
IsSupported |
获取一个值,该值指示当前设备/OS 版本是否支持 EnvironmentManager 。 |
方法
AddExecutableFileExtension(String) |
将指定的文件扩展名添加到 PATHEXT 环境变量的末尾。 |
AppendToPath(String) |
将指定路径添加到 PATH 环境变量的末尾。 |
GetEnvironmentVariable(String) |
获取当前 EnvironmentManager 范围内指定环境变量的值。 |
GetEnvironmentVariables() |
获取当前 EnvironmentManager 范围内的环境变量的集合。 |
GetForMachine() |
获取系统范围的 EnvironmentManager 。 |
GetForProcess() |
获取范围限定为当前进程的 EnvironmentManager 。 |
GetForUser() |
获取范围限定为当前用户的 EnvironmentManager 。 |
RemoveExecutableFileExtension(String) |
从 PATHEXT 环境变量的末尾删除指定的文件扩展名。 |
RemoveFromPath(String) |
从 PATH 环境变量的末尾删除指定的 路径 。 |
SetEnvironmentVariable(String, String) |
在当前 EnvironmentManager 的范围内设置指定环境变量的值。 |