Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ShellExecute, запуск и закрытие процессов.

40K
22 ноября 2008 года
unixoid7
7 / / 21.11.2008
Привет :-P
Использую функцию ShellExecute для запуска внешней консольной программы. Вот вид запуска: ShellExecute(Handle,NULL,"interpreter.exe",static_cast<const char*>(x.data()),NULL,SW_HIDE);

Но я повторно использую эту функцию в своей программе. Выходит что процесс interpreter.exe много раз появляется в диспетчере задач, то есть запускается по новой. Мне нужно чтобы процесс запускался однажды и не копировал себя в памяти повторно после вызова... Или другой вариант - это удалить процесс из памяти. А потом по новой запустить. Как удалить процесс, запущенный с помощью ShellExecute?
397
22 ноября 2008 года
SergPas
527 / / 03.02.2007
Цитата:
Вот вид запуска: ShellExecute(Handle,NULL,"interpreter.exe",static_ cast<const char*>(x.data()),NULL,SW_HIDE);

Я всегда думал, что флаг SW_HIDE позволяет скрыть окно, а он оказывается отображает его... :)

Цитата:
Мне нужно чтобы процесс запускался однажды и не копировал себя в памяти повторно после вызова...

Ну так и используйте глобальную булевскую переменную, какие проблемы?

Цитата:
Или другой вариант - это удалить процесс из памяти. А потом по новой запустить. Как удалить процесс, запущенный с помощью ShellExecute?

Ну, или жестко завершайте созданный процесс функцией TerminateProcess...

1
22 ноября 2008 года
kot_
7.3K / / 20.01.2000
Для реализации требуемого вам поведения используте CreateProcess. Функция ShellExecute решает совсем другие задачи.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог