Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
4 / 4 / 1
Регистрация: 25.10.2010
Сообщений: 45
.NET 4.x

Process.Start, как проверить существование exe

29.05.2012, 22:23. Показов 2339. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне нужно у клиента запускать приложения:
Тут все понятно, написали и понеслась.....
C#
1
Process.Start
Но что делать
У одного клиента есть test.exe, а у другого нету.
Сервер отправляет команды на запуск, у первого все ОК. У второго вылет приложения из-за не возможности запуска test.exe.

Как можно проверить, возможно ли запустить test.exe, а потом уже запускать?!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.05.2012, 22:23
Ответы с готовыми решениями:

Не открывает exe через Process.Start
Есть папка "1", в этой папке тоже есть папка "2" Запускаю "1.exe" с папки "1"... "1.exe" включает прогаму "2.exe" из папки...

Как при Process.Start() указать текущую директорию
Уже обращался сегодня по теме запуска сторонних приложений, но тут возникла другая проблема. Решил расширить функции своей утилиты, чтобы...

Process.Start: как запустить файл, находящийся в директории программы
Еще раз здравствуйте!) Подскажите пожалуйста. Я ознакомился с Process.Start(), и у меня появился вопрос, что надо писать что бы он искал...

3
 Аватар для dextermd
101 / 100 / 18
Регистрация: 04.09.2009
Сообщений: 133
29.05.2012, 22:35
C#
1
2
3
4
5
6
string file = "skype.exe";
 
if (File.Exists(file))
{
    Process.Start(file);
}
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
30.05.2012, 11:05
Цитата Сообщение от Black Devil Посмотреть сообщение
У второго вылет приложения из-за не возможности запуска test.exe.
Возможно потом появится проблема, если запуск test.exe запрещен, например антивирусом или политикой безопасности.
Так что общим решением будет - перехват исключения.
C#
1
2
3
4
5
6
try {
   Process.Start("test.exe");
}
catch (Exception e) {
   MessageBox.Show(e.Message, "Не удалось запустить test.exe");
}
1
213 / 139 / 8
Регистрация: 18.08.2010
Сообщений: 1,018
30.05.2012, 11:58
Добавлю только, что если вот таких случаев несуществования файла
Цитата Сообщение от Black Devil Посмотреть сообщение
У одного клиента есть test.exe, а у другого нету
много(50 на 50), то лучше делать как проверку на существование файла, так и обработку исключения. Потому что само появление исключения забирает сравнительно много времени и потому их появления нужно избегать, если заведомо известна причина их появления. А потому конечный код будет выглядеть так:
C#
1
2
3
4
5
6
7
8
9
if (File.Exists(file))
{
    try {
        Process.Start("test.exe");
    }
    catch (Exception e) {
       MessageBox.Show(e.Message, "Не удалось запустить test.exe");
    }
}
но так делать только в том случае, если вероятность несуществования файла велика. Если же в большинстве случаев файл всегда на месте и вероятность, что он не существует, маленькая, то лучше делать так, как предложил turbanoff.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.05.2012, 11:58
Помогаю со студенческими работами здесь

Аргумент Process.Start, содержащий пробел расценивается как два параметра
Помогите плиз. так работает System.Diagnostics.Process.Start("winamp.exe", "e:\\Максодром\\046.MP3"); а так нет ...

Как Process.Start "вставить" в общий поток?
Здравствуйте. Имеется примерно такой код: //Часть программы Process.Start("path"); ...

Не работает переменная в Process.Start (CMD)
Как можно использовать переменные из CMD в этом коде? Process.Start("cmd.exe", "/C set str=\"asd\" & echo %str% &...

System.Disagnostics.Process.Start Error
У меня есть два консольных приложения. Назовём их ConsoleApp и ConsoleChecker Оба работают с одной и той же базой sqlite3. Смысл в том,...

Process.start: не открывается картинка на Windows XP
// запуск процесса Process imgProcess = new Process(); mgProcess.StartInfo.FileName = "F:/exemple.jpg"; imgProcess.Start();код...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru