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

Ваш аккаунт

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

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

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

CreateProcess

2.3K
22 мая 2003 года
pas
15 / / 22.05.2003
Здравствуйте. У меня проблема. Форма запускает консольную программу, которую нужно при необходимости закрыть, т.е. разрушить окно консоли, что не получается.
Спасибо за внимание!
:-?
362
23 мая 2003 года
_kolyan
339 / / 03.12.2002
Я делал так для оконного приложения. Но, в принципе, консольное пирложение это тоже оконное с именем класса окна ConsoleWindowClass


делаем так:

//ищем окно
HWND hWnd = FindWindow(имя_класса_окна, название_окна);
DWORD pid;
//берем процесс к которому прявязано окно
GetWindowThreadProcessId(hWnd, &pid);
//открываем процесс на уничтожение
HANDLE hProc = OpenProcess(PROCESS_TERMINATE, FALSE, pid);
//завершаем процесс
TerminateProcess(hProc, -1);
2.3K
23 мая 2003 года
pas
15 / / 22.05.2003
Цитата:
Originally posted by _kolyan
Я делал так для оконного приложения. Но, в принципе, консольное пирложение это тоже оконное с именем класса окна ConsoleWindowClass


делаем так:

//ищем окно
HWND hWnd = FindWindow(имя_класса_окна, название_окна);
DWORD pid;
//берем процесс к которому прявязано окно
GetWindowThreadProcessId(hWnd, &pid);
//открываем процесс на уничтожение
HANDLE hProc = OpenProcess(PROCESS_TERMINATE, FALSE, pid);
//завершаем процесс
TerminateProcess(hProc, -1);



Проблема в том, что мне не удается узнать класс окна консольного приложения, то ли он стандартный для всех?
Спасибо за внимание!

2.3K
23 мая 2003 года
pas
15 / / 22.05.2003
Цитата:
Originally posted by _kolyan
Я делал так для оконного приложения. Но, в принципе, консольное пирложение это тоже оконное с именем класса окна ConsoleWindowClass


делаем так:

//ищем окно
HWND hWnd = FindWindow(имя_класса_окна, название_окна);
DWORD pid;
//берем процесс к которому прявязано окно
GetWindowThreadProcessId(hWnd, &pid);
//открываем процесс на уничтожение
HANDLE hProc = OpenProcess(PROCESS_TERMINATE, FALSE, pid);
//завершаем процесс
TerminateProcess(hProc, -1);



Спасибо.
Но каким образом задать свое имя окна консольного приложения?
Спасибо за внимание!

362
23 мая 2003 года
_kolyan
339 / / 03.12.2002
Имя оконного класаа для всех консольных приложений одинаковое - ConsoleWindowClass

А имя окна по умолчанию соотвествует названию исполняемого файла с полным путем

по моему этого достаточно для уничтожения окна
2.3K
23 мая 2003 года
pas
15 / / 22.05.2003
Цитата:
Originally posted by _kolyan
Имя оконного класаа для всех консольных приложений одинаковое - ConsoleWindowClass

А имя окна по умолчанию соотвествует названию исполняемого файла с полным путем

по моему этого достаточно для уничтожения окна



Программу делаю не для себя! И если пользователь параллельно будет использовать другое Dos-приложение, то это может закончиться плачевно.

362
26 мая 2003 года
_kolyan
339 / / 03.12.2002
Цитата:
Originally posted by pas


Программу делаю не для себя! И если пользователь параллельно будет использовать другое Dos-приложение, то это может закончиться плачевно.



Так ты знаешь или не знаешь какую программу тебе надо убить?

Если не знаешь, тогда и убить нельзя ;-))
А если знаешь, то так, как я писал выше.

Или убиваемая программа может лежать по разным непредсказуемым путям?

2.3K
26 мая 2003 года
pas
15 / / 22.05.2003
Цитата:
Originally posted by _kolyan


Так ты знаешь или не знаешь какую программу тебе надо убить?

Если не знаешь, тогда и убить нельзя ;-))
А если знаешь, то так, как я писал выше.

Или убиваемая программа может лежать по разным непредсказуемым путям?



Спасибо, Николай, за помощь.
С вашей подачи я решил свои проблемы.
А имя консоли я просто подменяю функцией GetWindowText() на нужное мне.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог