2016-09-19 1 views
1

Я пытаюсь расширить Microsoft переменные окружения, которые я нашел на этой майкрософт странице: https://technet.microsoft.com/de-de/library/dd560744(v=ws.10).aspxНе удается переменные окружения с C# (с использованием Windows 7)

C# функция Я использую это: Environment.ExpandEnvironmentVariables("%SYSTEM32%") Моя конечная цель для добавления расширенной переменной среды в поле со списком. Я хочу сделать это вот так: this.destinationDirComboBox.Items.Add(Environment.ExpandEnvironmentVariables("%SYSTEM32%"));

Проблема в том, что только переменные среды, которые будут расширены, составляют% TEMP% и% WINDIR%. Все остальные будут отображать переменную окружения без ее расширения, например. % SYSTEM32% вместо C: \ Windows \ System32. Моя цель - показать C: \ Windows \ System32.

Что я пробовал:

  • Добавление переменной окружения пользователя, перейдя в компьютер-> свойства-> Advanced System Settings-> Окружающая среда Variables-> добавить новую пользовательскую переменную окружения. Он работает только на моей собственной командной строке , но не в коде C#.
  • Пытался добавить переменную системной среды, и я не уверен, что я сделал это неправильно или если это не сработало. Не нашел много информации о
    как это происходит.
  • Проверено значение ключа реестра Windows PATH.

В чем может быть причина проблемы? Как я могу это сделать?

ответ

1

откройте командную строку и проверьте существующие переменные ENV с помощью команды set.
Afaik sth. как SYSTEM32 не является стандартом для Windows, но он определен WINDIR + «System32», если вы действительно ищете только это место.

другой подход:

this.destinationDirComboBox.Items.Add(Environment.GetFolderPath(Environment.SpecialFolder.System));// -> c:\windows\System32 

проверить это для более путей и направлений:

Environment.GetFolderPath(Environment.SpecialFolder.Desktop); // -> c:\Users\UserX\Desktop 

это Docs поможет вам: MSDN Specialfolder docs

+0

Есть ли способ определить переменную окружения, не делая это путем добавления строк вручную, как в WINDIR + «System32»? Проблема в том, что это не сработает, потому что я хочу, чтобы приложение показывало пользователю правильный путь на своей машине, а не тот, который я определил добавлением строк. Например. путь к рабочему столу пользователя должен содержать USERNAME компьютера, который должен быть динамически извлечен. – Dovile

+0

, конечно, такой способ, но я не понимаю, зачем вам это нужно? Я думал, что ваша цель состоит в том, чтобы заполнить combox с некоторой информацией о пути. Pls проверит мой обновленный ответ –

+1

Большое вам спасибо - это сработало. Единственный путь к папке, который я не мог найти, был quicklaunch, но это только один из многих, не имеет значения. Ты спас мой день! – Dovile

 Смежные вопросы

  • Нет связанных вопросов^_^