среда, 1 августа 2012 г.

Запуск проводника в VC#

Чтобы запустить из программы на C# проводник Windows нам понадобиться пространство имен System.Diagnostics и класс Process. Данный класс предлагает метод Start() который и организует вызов внешней программы. Для этого разместим на форме проекта C# WinForms объект Button, определим его имя как btnExplorer и зададим содержание функции Click() обрабатывающей нажатие кнопки:
using System.Diagnostics;

private void btnExplorer_Click(object sender, EventArgs e)
{
     Process.Start("explorer");
}

В результате, после клика на кнопке экран монитора отобразит проводник Windows в заданном по умолчанию виде, соответствующем запуску проводника через кнопку Пуск->Выполнить. Но не всегда этот вид удовлетворителен. Усложним задачу, требуя, чтобы проводник отображал не папку "Мои документы", а некоторую наперед заданную...

Для этого достаточно вызвать метод Start() с дополнительным строковым параметром. В  нем  мы укажем целевой каталог, например папку C:\Windows:

     Process.Start("explorer", "C:\\Windows");

Заметьте, что в пути до целевого каталога использован двойной слэш, чтобы исключить трактовку управляющих символов, начинающихся с \.

Если хочется, чтобы проводник позиционировал конкретный файл используйте ключ /select, например, для выделения в папке Windows файла win.ini выполним:

     Process.Start("explorer", "/select,C:\\Windows\\win.ini");

Тот же эффект возможен и с каталогом. Например выделим папку Windows:

     Process.Start("explorer", "/select,C:\\Windows");

P.S. Приведенный выше код тестировался на Windows XPSP3. Для более поздних версий Windows возможны отличия.