Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Как узнать идентификатор потока по дескриптору окна?

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Как узнать идентификатор потока по дескриптору окна?
Имя
Сообщение << Старые топики   Новые топики >>
Как узнать идентификатор потока по дескриптору окна? - 2011-06-30 20:22:41.646666   
Niruko

Сообщений: 4
Оценки: 0
Присоединился: 2011-06-30 20:03:36.936666
1)Как узнать идентификатор потока по дескриптору окна?

идентификатор потока: GetWindowThreadProcessId(hwnd,pid);
я уверен что есть подобная функция и для потока, помогите ее найти.

2) функция GetWindowThreadProcessId(hwnd,pid) возвращает код 204 и не находит pid, что бы это могло значить?

Ну и скрин из spy++:

Post #: 1
RE: Как узнать идентификатор потока по дескриптору окна? - 2011-06-30 20:24:39.990000   
Niruko

Сообщений: 4
Оценки: 0
Присоединился: 2011-06-30 20:03:36.936666

Post #: 2
RE: Как узнать идентификатор потока по дескриптору окна? - 2011-07-01 10:14:47.443333   
Flint_ta

Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
1.
&nbsp;&nbsp;&nbsp; .686 &nbsp;&nbsp;&nbsp; .model flat, stdcall ; модель памяти - flat &nbsp;&nbsp;&nbsp; option casemap :none &nbsp;&nbsp;&nbsp; assume fs:nothing &nbsp;&nbsp;&nbsp; assume gs:nothing &nbsp;&nbsp;&nbsp; assume ds:nothing &nbsp;&nbsp;&nbsp; include \MASM32\INCLUDE\kernel32.inc &nbsp;&nbsp;&nbsp; include \MASM32\INCLUDE\user32.inc &nbsp;&nbsp;&nbsp; include \MASM32\INCLUDE\windows.inc &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; includelib \MASM32\LIB\kernel32.lib &nbsp;&nbsp;&nbsp; includelib \MASM32\LIB\user32.lib &nbsp;&nbsp;&nbsp; ; Секция данных .data textokna1 db "Parent Process", 0 textokna2 db "Child Process", 0 .data? ProcessID1 dd ? ; Идентификатор процесса ProcessID2 dd ? ; Идентификатор процесса ThreadID1&nbsp;&nbsp;&nbsp; dd ? ; Идентификатор потока ThreadID2&nbsp;&nbsp;&nbsp; dd ? ; Идентификатор потока ; секция кода .code start: push offset textokna1 push 0 Call FindWindowA push offset ProcessID1 push eax call GetWindowThreadProcessId mov ThreadID1, eax push offset textokna2 push 0 Call FindWindowA push offset ProcessID2 push eax call GetWindowThreadProcessId mov ThreadID2, eax push 0 call ExitProcess end start
или так если с асмом не дружишь:
int main() { &nbsp;&nbsp;&nbsp; HWND hWnd = (HWND)0x01017E; // это HWND окна (IE в текущей сессии, взят by Spy++) &nbsp;&nbsp;&nbsp; DWORD dwProcessID = 0; &nbsp;&nbsp;&nbsp; DWORD dwThreadID = ::GetWindowThreadProcessId(hWnd, &amp;dwProcessID); &nbsp;&nbsp;&nbsp; printf("ProcessID = %08X, ThreadID = %08X\n", dwProcessID, dwThreadID); &nbsp;&nbsp;&nbsp; return 0; }
2. Либо неверный хэндл окна передаешь, либо неверно передаешь параметры в функцию
Post #: 3
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Как узнать идентификатор потока по дескриптору окна?







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.