monrus
Опытный
Offline
|
|
« : 14-01-2008 09:42 » |
|
Я нахожу хендл окна с помощью FindWindow Как по этому хендлу найти ID процесса этого окна?
|
|
|
Записан
|
|
|
|
DemonicAlligator
Гость
|
|
« Ответ #1 : 14-01-2008 09:53 » |
|
DWORD GetWindowThreadProcessId( HWND hWnd, // handle to window LPDWORD lpdwProcessId // process identifier <---- вот оно ); или в дельфийской нотации: Function GetWindowThreadProcessId(hwnd:HWND; var dwprocessId:Cardinal):Cardinal;
|
|
« Последнее редактирование: 14-01-2008 09:57 от Синий Аллигатор »
|
Записан
|
|
|
|
monrus
Опытный
Offline
|
|
« Ответ #2 : 14-01-2008 10:36 » |
|
По этой функции у меня находит какой-то поток данного процесса, а можно ли выйти на сам процесс через этот поток?
|
|
|
Записан
|
|
|
|
DemonicAlligator
Гость
|
|
« Ответ #3 : 14-01-2008 10:48 » |
|
var dwprocessId:Cardinal - это и будет ID процесса
|
|
|
Записан
|
|
|
|
monrus
Опытный
Offline
|
|
« Ответ #4 : 14-01-2008 10:59 » |
|
у меня программа есть InqSoft Window Scanner - то что выдает мне моя прога - window scanner показывает что это только id потока , а id процесса другой.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #5 : 14-01-2008 11:14 » |
|
monrus, ID процесса проще посмотреть в ctrl+alt+del
|
|
|
Записан
|
|
|
|
monrus
Опытный
Offline
|
|
« Ответ #6 : 14-01-2008 11:17 » |
|
я знаю - тогда надо лишние телодвижения делать ручкамит- зачем тогда программирование
|
|
|
Записан
|
|
|
|
DemonicAlligator
Гость
|
|
« Ответ #7 : 14-01-2008 11:44 » |
|
Ээээ... насколько мне известно, Tread Id - это то, что возвращает сама функция, а в переменную суёца ID процесса... да и я сам этой же функцией пользуюсь...
|
|
|
Записан
|
|
|
|
zubr
Гость
|
|
« Ответ #8 : 14-01-2008 15:44 » |
|
monrus, а что дальше ты собираешься с этим ID делать?
|
|
|
Записан
|
|
|
|
monrus
Опытный
Offline
|
|
« Ответ #9 : 15-01-2008 02:25 » |
|
потом TerminateProcess. если после GetWindowThreadProcessId поставить значение в TerminateProcess, то убивается поток какой-то в процессе, а сам процесс остается. Я понимаю что после этого можно еще раз сделать FindWindow->GetWindowThreadProcessId и возможно найдеться ID процесса, но это как-то глупо.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #10 : 15-01-2008 04:22 » |
|
monrus, поюзай taskkill Убивает наповал
|
|
|
Записан
|
|
|
|
monrus
Опытный
Offline
|
|
« Ответ #11 : 15-01-2008 04:49 » |
|
Сорри. все понял, действительно в var dwprocessId:Cardinal находится ID процесса, а сама функция возвращает ID потока.
Всем большое спасибо!!!
|
|
« Последнее редактирование: 15-01-2008 04:58 от monrus »
|
Записан
|
|
|
|
zubr
Гость
|
|
« Ответ #12 : 15-01-2008 04:56 » |
|
monrus, ты неправильно делаешь. Ты подставляешь в функцию TerminateProcess индентификатор процесса, а не хендл процесса. Надо сначала получить хендл процесса, используя функцию OpenProcess, подставляя в нее индентификатор процесса.
|
|
|
Записан
|
|
|
|
monrus
Опытный
Offline
|
|
« Ответ #13 : 15-01-2008 04:59 » |
|
да я так и сделал - просто не написал че дальше происходит В одном туторе видел, что после TerminateProcess, зачем-то CloseHandle на хендл этого процесса делается?
|
|
|
Записан
|
|
|
|
zubr
Гость
|
|
« Ответ #14 : 15-01-2008 05:07 » |
|
CloseHandle надо делать. Тем самым ты сообщаешь винде, что данный хендл больше не нужен.
|
|
|
Записан
|
|
|
|
monrus
Опытный
Offline
|
|
« Ответ #15 : 15-01-2008 05:24 » |
|
аа- ok.
|
|
|
Записан
|
|
|
|
DemonicAlligator
Гость
|
|
« Ответ #16 : 15-01-2008 13:25 » |
|
Вот так, совместными усилиями, и был создан новый руткит
|
|
|
Записан
|
|
|
|
zubr
Гость
|
|
« Ответ #17 : 15-01-2008 15:31 » |
|
Синий Аллигатор, тсс..., а то еще посодют за соавторство )
|
|
|
Записан
|
|
|
|
monrus
Опытный
Offline
|
|
« Ответ #18 : 16-01-2008 03:35 » |
|
Да все нормально - не переживайте Просто у меня программа консольная установлена, которая при обрыве связи виснет, а админы отключили кнопку закрытия окна, приходилось лезть в диспетчер задач. А вам всем спасибо за то что помогаете!!!
|
|
|
Записан
|
|
|
|
monrus
Опытный
Offline
|
|
« Ответ #19 : 16-01-2008 03:37 » |
|
А насчет руткитов - проще в инете скачать, зачем тратить время на создание того, что уже сделано другими
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #20 : 16-01-2008 04:18 » |
|
А насчет руткитов - проще в инете скачать, зачем тратить время на создание того, что уже сделано другими вот это в последнее время и грустно - вирусов и так дохренища (
|
|
|
Записан
|
|
|
|
|