![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 22.10.2013
Сообщений: 72
|
![]()
Доброго времени суток. Пишу программу, которая по заданному сочетанию клавиш убивает активный в данный момент процесс. Делал так: зарегестрировал хоткей, дальше пытался перехватить handle активного окна через GetForegroundWindow(). Работало как надо. Но, получить handle процесса для его дальнейшей аннигиляции я не смог.
Код:
|
![]() |
![]() |
![]() |
#2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 22.10.2013
Сообщений: 72
|
![]()
Спасибо, минуты две назад сделал. Тестирую. Я к тому, что хендл окна таким ребятам как ExitProcess() и TerminateProcess() как козе баян. Между прочим, как лучше закрыть процесс, чтобы ресурсы (в данном случае - оператива) освободились максимально быстро? MSDN не очень хочет мне рассказывать, а в гугле я нашёл только статьи в стиле: уверуй и спасёшься, никогда не используй ExitProcess()
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]() |
![]() |
![]() |
![]() |
#5 | |
Пользователь
Регистрация: 22.10.2013
Сообщений: 72
|
![]() Цитата:
Код:
|
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]()
EnumWindows() выдаст вам все top-level окна.
Как получить процесс из окна уже знаете. Остается всем найденным окнам послать WM_CLOSE, а уже тем процессам, которые артачаться можно делать TerminateProcess |
![]() |
![]() |
![]() |
#7 | |
Пользователь
Регистрация: 22.10.2013
Сообщений: 72
|
![]() Цитата:
Код:
|
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]() |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 22.10.2013
Сообщений: 72
|
![]()
Функция должна получать заголовок окна по известному хендлу, после чего, передавать в main для вывода в консоль.
Вся программа написана для быстрого завершения программ, которые по долгу тупят перед выходом: игоры там всякие, лиса и иже с ними. Чтобы не пялиться в зависшее приложение\черный экран, пользую terminateprocess для тотального уничтожения неугодного процесса. Проблема с количеством оперативы: комп довольно старый, а матплата просто не заводится с 2+ числом плашек. Такой выход кажется мне наиболее рациональным. |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]()
Данная функция заголовок получает и ничего с ним не делает.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Отслеживание переходов | bpystep | Помощь студентам | 1 | 01.04.2012 13:40 |
Создание задания, добавление процессов, удаление процессов | RAZOR1703 | Win Api | 12 | 16.02.2012 18:07 |
Отслеживание USB | FitzPNZ | C++ Builder | 0 | 18.12.2011 20:02 |
Отслеживание | impulsgraw | Работа с сетью в Delphi | 3 | 12.06.2011 12:24 |
Отслеживание процессов. | NSUstudent | Безопасность, Шифрование | 0 | 22.09.2010 19:41 |