Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Assembler: Как "убить" процесс в WinXP

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Iceman82



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите, пожалуйста, советом: под WinXP написал программу типа Планировщика Задач - выводит в окошко идентификаторы запущенных процессов с текстом окна (WindowText). Но есть проблема - по полученным идентификаторам хочу завершить процесс с помощью TerminateProcess, а ничего не происходит. ID процесса получаю по GetWindowThreadProcessId.
 
Может, это как-то связано с правами доступа???

Всего записей: 48 | Зарегистр. 10-02-2005 | Отправлено: 18:12 16-02-2005
MrZeRo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Iceman82
Так просто не получится, надо сначала изменить привилегии.  
Функции LookupPrivilegeValue, AdjustTokenPrivileges, OpenProcessToken, ....
В MSDN есть пример.

Всего записей: 831 | Зарегистр. 30-01-2002 | Отправлено: 18:30 16-02-2005
Iceman82



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, посмотрю, может и найду чего

Всего записей: 48 | Зарегистр. 10-02-2005 | Отправлено: 18:39 16-02-2005
OldGopher



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
ID процесса получаю по GetWindowThreadProcessId

А если процесс не имеет окна?
 
PSAPI.dll и Toolhelp.dll Вам помогут...

Всего записей: 3802 | Зарегистр. 25-10-2001 | Отправлено: 01:30 17-02-2005
mihas83



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Iceman82
Очень рекомендую ''обратить взор'' на книгу Рихтера ''Programming Applications for Microsoft Windows”.

----------
Мы знаем: время растяжимо. Оно зависит от того,
Какого рода содержимым Вы заполняете его. (C. Маршак)

Всего записей: 7832 | Зарегистр. 15-07-2003 | Отправлено: 09:51 17-02-2005
Iceman82



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mihas83

Цитата:
Очень рекомендую ''обратить взор'' на книгу Рихтера  

А нет ли ссылки какой-нибудь на эту книгу в интернете? Был бы очень благодарен
 
 
После применения функций LookupPrivilegeValue, AdjustTokenPrivileges, OpenProcessToken программа стала работать, но закрывает только один процесс - саму себя...

Всего записей: 48 | Зарегистр. 10-02-2005 | Отправлено: 20:17 18-02-2005
mihas83



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Iceman82

Цитата:
А нет ли ссылки какой-нибудь на эту книгу в интернете? Был бы очень благодарен

Возьми здесь.  
Успехов!

Всего записей: 7832 | Зарегистр. 15-07-2003 | Отправлено: 20:53 18-02-2005
Iceman82



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mihas83
Огромное спасибо, книгу взял, наискосок просмотрел - очень толково

Всего записей: 48 | Зарегистр. 10-02-2005 | Отправлено: 21:15 18-02-2005
mihas83



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Iceman82

Цитата:
наискосок просмотрел - очень толково

Бесспорно.  
Считаю одной из лучших в этом направлении.

Всего записей: 7832 | Зарегистр. 15-07-2003 | Отправлено: 10:51 19-02-2005
Iceman82



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mihas83
Но я в Рихтере ничего не нашел о привилегиях и как с ними бороться.
А одного MSDN'а мне маловато для понимания, к чему все это надо
и как оно работает

Всего записей: 48 | Зарегистр. 10-02-2005 | Отправлено: 23:46 20-02-2005
koderr



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Iceman82
 
Возьми за образец taskmgr.exe - дизассемблируй его и посмотри соответствующее место в коде

Всего записей: 353 | Зарегистр. 22-06-2005 | Отправлено: 16:08 14-12-2005
MrZeRo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Iceman82

Цитата:
А одного MSDN'а мне маловато для понимания, к чему все это надо  
и как оно работает

Ну, это как сказать ... Там понимать особенно нечего - какие правила игры нам предлагает Microsoft, так надо и делать, выбора-то не остается.
MSDN наверняка достаточно, чтобы решить вопрос. Я это сделал на Delphi при помощи одного MSDN, могу выложить кусок работающей программы, которая убивает процесс.

----------
... не это главное ...

Всего записей: 831 | Зарегистр. 30-01-2002 | Отправлено: 16:47 14-12-2005
Iceman82



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MrZeRo
 

Цитата:
могу выложить кусок работающей программы, которая убивает процесс

 
Буду очень благодарен!

Всего записей: 48 | Зарегистр. 10-02-2005 | Отправлено: 13:43 16-12-2005
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Assembler: Как "убить" процесс в WinXP


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru