Список тем [дубликаты]

0
 HANDLE h = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
 if (h != INVALID_HANDLE_VALUE) {
  THREADENTRY32 te;
  te.dwSize = sizeof(te);
  if (Thread32First(h, &te)) {
   do {
     if (te.dwSize >= FIELD_OFFSET(THREADENTRY32, th32OwnerProcessID) +
                      sizeof(te.th32OwnerProcessID)) {
                          HANDLE Handle = OpenProcess(
        PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
        FALSE,
        te.th32OwnerProcessID /* This is the PID, you can find one from windows task manager */
    );
                          TCHAR Buffer[MAX_PATH];
       wprintf(L"Process %u IdThred=%u\n",
             te.th32OwnerProcessID, te.th32ThreadID);
     }
   te.dwSize = sizeof(te);
   } while (Thread32Next(h, &te));
  }
  CloseHandle(h);
 }

этот код перечисляет все процессы и все потоки процесса, но я хочу, чтобы он перечислял только поток процесса pid... example: explorer.exe pid = 5454 через pid хотел, чтобы у него были идентификаторы потоков и потоков государство.

  • 0
    Я не совсем уверен, что вы спрашиваете, но этот пример может помочь.
Теги:
visual-c++

1 ответ

1

Ваш код действительно работает. Просто нужно немного изменить:

HANDLE h = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
if (h != INVALID_HANDLE_VALUE)
{
    THREADENTRY32 te;
    te.dwSize = sizeof(te);
    if (Thread32First(h, &te))
    {
        do
        {
            //in THREADENTRY32 structure there is a member called th32OwnerProcessID
            //you can check owner process of thread like this:
            if (te.th32OwnerProcessID == 5454)
            {
                wprintf(L"Process %u IdThred=%u\n", te.th32OwnerProcessID, te.th32ThreadID);
            }
        } while (Thread32Next(h, &te));
    }
    CloseHandle(h);
}
  • 2
    Было бы неплохо, если бы вы могли прокомментировать изменение, а не только опубликовать новый код.
  • 0
    но процесс, в котором я хочу получить информацию, он и невидим, и этот код не работает против него. есть ли другой способ?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню