Поделиться через


EnvironmentManager Класс

Определение

Класс для чтения и записи переменных среды.

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
Наследование
Object Platform::Object IInspectable EnvironmentManager
Атрибуты

Комментарии

API добавляет отслеживание переменных среды, которые используются для чистого удаления артефактов среды, написанных приложением. Отслеживание также позволяет восстанавливать ранее записанные отслеживаемые переменные при удалении приложения.

Для упакованных приложений будет отслеживаться переменная, созданная или измененная с помощью нового API. Переменные, которые не создаются или не изменяются с помощью нового API, по-прежнему не отслеживаются.

Платформа может отслеживать удаление упакованных приложений, но не для неупакованных приложений. Для неупакованных приложений для очистки переменных среды используется собственное средство удаления приложения. Неупакованное приложение может обеспечить собственную очистку при удалении, вызвав API SetEnvironmentVariable с пустой строкой для значения или RemoveFromPath, но это приведет к удалению пути из переменной PATH, не отменить изменения его в предыдущее состояние.

При удалении пакета активируется очистка и восстановление среды.

  1. Все переменные, созданные приложением, удаляются.
  2. Если переменная не была изначально создана приложением, но была изменена последним приложением, ее значение будет восстановлено до последнего значения, заданного другим приложением.
  3. Изменения переменных, внесенные механизмами, отличными от использования этих API (например, пользователь, который вносит изменения вручную через RegEdit), будут учитываться.

Примечание

Приложение, задающее переменную в пустую строку, фактически удаляет переменную, и не нужно задавать новое значение.

Обратите внимание на некоторые другие моменты:

  • Система не использует прослушиватель реестра. Таким образом, единственным способом узнать, изменилось ли что-то, является то, использует ли вызывающий объект эти API для создания или изменения переменных или если приложение, которое это сделал, теперь удаляется.
  • Система не будет отслеживать изменения, внесенные за пределами API; и не будет отслеживать удаление неупакованных приложений.
  • При удалении упаковавшегося приложения любая созданная им переменная будет удалена независимо от любых других изменений (отслеживаемых или неотслеживенных) в этой переменной в течение ее существования.
  • Если переменная не была создана с помощью этих API, она не будет удалена при удалении упаковавшегося приложения. Вместо этого будет возвращено последнее изменение, внесенное этим приложением (через API).
  • Приложения a-la-carte имеют удостоверение, но не устанавливаются так, как устанавливаются упакованные приложения. Нет надежного способа определить, когда удаляется приложение a-la-carte. Таким образом, хотя переменная, созданная или записанная приложением a-la-carte, будет отслеживаться, она не будет очищена при удалении приложения.

Свойства

AreChangesTracked

Возвращает значение, указывающее, отслеживаются ли изменения переменных среды.

IsSupported

Возвращает значение, указывающее, поддерживается ли 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.

Применяется к