WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Как получить thread??????

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Как получить thread??????
talex опубликован 06-08-2001 12:37 MSK   Click Here to See the Profile for talex   Click Here to Email talex  
SOS, SOS, SOS,..........
Как получить активный thread of application
if HWND of window is available.
Это я для SetWindowsHookEx хочу.
Хоокнуть keyboard events оf определенной, работающей программы.

Всем кто ответит,
большой THX, заранее.

sps опубликован 15-08-2001 18:35 MSK     Click Here to See the Profile for sps  Click Here to Email sps     
Не думаю, что это верный путь, но...
Во-первых, посмотри в MSDN:
INFO: Thread Handles and Thread IDs
ID: Q127992
Во-вторых, попробуй это:

#include <windows.h>
#include <iostream.h>
#include <conio.h>

void main()
{
HWND hWnd = (HWND)0x0445038C; //твой HWND!!!
DWORD dwProcessID = 0, dwThreadID = 0;
dwThreadID = ::GetWindowThreadProcessId(hWnd, &dwProcessID);
cout << dwThreadID << endl << dwProcessID << endl;
if (::DebugActiveProcess(dwProcessID))
{
DEBUG_EVENT debugEvent = {0};
if (::WaitForDebugEvent(&debugEvent, INFINITE))
{
::TerminateThread(debugEvent.u.CreateThread.hThread, 0);
::TerminateProcess(debugEvent.u.CreateProcessInfo.hProcess, 0);
}
}
else
cout << ::GetLastError() << endl;
getch();
}
Я это попробовал. Работает.
Делал я это при помощи MS Spy++ (этим приложением я находил HANDLE окна), MS Calculator (это приложение я как раз и закрывал при помощи моего консольного) и мое консольное, которое ты видишь выше.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.