|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.05.2015, 19:51 | #1 |
Пользователь
Регистрация: 22.10.2013
Сообщений: 72
|
Отслеживание процессов
Доброго времени суток. Пишу программу, которая по заданному сочетанию клавиш убивает активный в данный момент процесс. Делал так: зарегестрировал хоткей, дальше пытался перехватить handle активного окна через GetForegroundWindow(). Работало как надо. Но, получить handle процесса для его дальнейшей аннигиляции я не смог.
Код:
|
26.05.2015, 20:10 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
26.05.2015, 20:35 | #3 |
Пользователь
Регистрация: 22.10.2013
Сообщений: 72
|
Спасибо, минуты две назад сделал. Тестирую. Я к тому, что хендл окна таким ребятам как ExitProcess() и TerminateProcess() как козе баян. Между прочим, как лучше закрыть процесс, чтобы ресурсы (в данном случае - оператива) освободились максимально быстро? MSDN не очень хочет мне рассказывать, а в гугле я нашёл только статьи в стиле: уверуй и спасёшься, никогда не используй ExitProcess()
|
26.05.2015, 21:49 | #4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
|
26.05.2015, 22:43 | #5 | |
Пользователь
Регистрация: 22.10.2013
Сообщений: 72
|
Цитата:
Код:
|
|
26.05.2015, 23:16 | #6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
EnumWindows() выдаст вам все top-level окна.
Как получить процесс из окна уже знаете. Остается всем найденным окнам послать WM_CLOSE, а уже тем процессам, которые артачаться можно делать TerminateProcess |
27.05.2015, 00:21 | #7 | |
Пользователь
Регистрация: 22.10.2013
Сообщений: 72
|
Цитата:
Код:
|
|
27.05.2015, 06:48 | #8 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
|
28.05.2015, 04:16 | #9 |
Пользователь
Регистрация: 22.10.2013
Сообщений: 72
|
Функция должна получать заголовок окна по известному хендлу, после чего, передавать в main для вывода в консоль.
Вся программа написана для быстрого завершения программ, которые по долгу тупят перед выходом: игоры там всякие, лиса и иже с ними. Чтобы не пялиться в зависшее приложение\черный экран, пользую terminateprocess для тотального уничтожения неугодного процесса. Проблема с количеством оперативы: комп довольно старый, а матплата просто не заводится с 2+ числом плашек. Такой выход кажется мне наиболее рациональным. |
28.05.2015, 08:47 | #10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Данная функция заголовок получает и ничего с ним не делает.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Отслеживание переходов | 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 |