別プロセスのスレッド全列挙

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
桜井

別プロセスのスレッド全列挙

#1

投稿記事 by 桜井 » 13年前

notepadのスレッドIDを全列挙させたいのですが、メインスレッド以外のスレッドを取得する方法がわからず1つしか取得できません。
別ソフトウェアを使いnotepadのスレッドを表示させると4つあります。
この4つを取得して出力するやり方を教えていただきたいです。
よろしくおねがいします。


コード:

// サンプル
#include <stdio.h>
#include <windows.h>
#include <tlhelp32.h>

// メイン関数
int main( void )
{
  HWND hWnd;
    DWORD dwProcessId;
    DWORD dwThreadId;
    HANDLE hProcess;

    hWnd = FindWindow("notepad", NULL);  //ウィンドウハンドル取得
    dwThreadId = GetWindowThreadProcessId(hWnd, &dwProcessId); //スレッドIDを取得するついでにプロセスIdも取得。
  //  hProcess = OpenProcess(PROCESS_ALL_ACCESS, TRUE, dwProcessId); //プロセスIDを使ってプロセスハンドルを取得。
	printf("%d",dwThreadId);//メインスレッドID出力
	getchar();
  return 0;
}

YuO
記事: 947
登録日時: 15年前
住所: 東京都世田谷区

Re: 別プロセスのスレッド全列挙

#2

投稿記事 by YuO » 13年前

使ったことが無いのですが,CreateToolhelp32Snapshotでスナップショットをとって,Thread32FirstThread32Nextで列挙できそうです。

ref) Win32 API でアプリケーションを列挙する方法 … スレッドの列挙方法では無いですが,キーワードを調べるのに利用しました。
Traversing the Thread List … スレッドの列挙サンプルっぽい。

桜井

Re: 別プロセスのスレッド全列挙

#3

投稿記事 by 桜井 » 13年前

YuOさんありがとうございます!無事に解決いたしました

閉鎖

“C言語何でも質問掲示板” へ戻る