![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Программное закрытие консольного окна в WinXP [D6, Win95/98, WinXP]
KiloBait © (2006-09-14 05:08:00)Из приложения на Delphi6 пытаюсь закрыть внешнее консольное окно Test1.exe.
Для закрытия окна использую вызов следующей функции:
PostMessage(FindWindow(Nil, ‘Test1’), WM_QUIT, 0, 0);
Где Test1 заголовок окна программы Test1.exe
В Win98 закрывает без проблем
В WinXP заголовок программы изменяется на :
‘C:\Program Files\Borland\Delphi6\Projects\Primer1\Test1.exe’
Подставляю в PostMessage, но не срабатывает.
Попробовал получить дескриптор следующим образом:
http://articles.org.ru/cfaq/index.php?qid=608&frommostrecent=yes
Получить-то получил, а вот закрыть не получается ((
Просто полный игнор на PostMessage в WinXP.
Ketmar (2006-09-15 05:17:00) [1]> [4] Slym(RO) (15.09.06 04:04)
и не надо тогда говорить. %-) и в общем, и в не очень общем случае это работать не будет.
Slym(RO) (2006-09-15 04:04:00) [2]Выцепить STDIn и CTRL+C туда... сам не пробывал...
Ketmar (2006-09-15 03:43:00) [3]Win9X на WinXP похожа только первыми тремя буквами (и те матерное слово составляют).
функции -- нет. точнее, есть: FreeConsole(). которую надо звать из процесса, владеющего консолью. т.е. OpenProcess(), CreateRemoteThread(), etc.
а зачем обязательно закрыть? может, достаточно просто спрятать?
зыж в статье тоже дан намёк на несхожеть 9X и NT. уже разный класс окон должен был насторожить.
KiloBait (2006-09-15 03:04:00) [4]Ketmar, но ведь в Win98 обрабатывает же. Не уже ли нет функции которая закрывала бы этот "уроненый на череп эмулятор оного" и в Win98 и WinXP :)
Ketmar (2006-09-14 09:56:00) [5]консоль не умеет обрабатывать такие сообщения. консоль -- это вообще не окно. это уроненый на череп эмулятор оного. %-(