THREADENTRY32スレッドについて


TOYAMA  2008-03-23 20:24:57  No: 67886  IP: [192.*.*.*]

質問があります。
Process32FirstとProcess32Nextで取得したProcessIDを
THREADENTRY32のThread32FirstとThread32Nextで取得した
th32OwnerProcessIDとProcessIDの一致したスレッドの優先順位を変更することは可能なのでしょうか。
現在実行しているアプリケーションのプロセスのスレッドを取得してスレッド優先順位
を変更することは可能なのでしょうか。プロセスのスレッドとはどういうことなのでしょうか。
宜しくお願いします。

編集    削除
そだ  2008-03-23 23:28:36  No: 67887  IP: [192.*.*.*]

>現在実行しているアプリケーションのプロセスのスレッドを取得してスレッド優先順位
>を変更することは可能なのでしょうか。プロセスのスレッドとはどういうことなのでしょうか。

スレッド優先順位を変えるにはSetThreadPriorityという関数があります。
ただしスレッドに割り当てられたアクセス権によってはこの関数を使っても変更できません。
詳しくはMSDNのSetThreadPriorityとCreateThreadの項目を読んでください。

編集    削除
TOYAMA  2008-03-24 01:56:50  No: 67888  IP: [192.*.*.*]

返答有難うございます。
OSはWindowsMeでVisualC++6.0Professionalを使用してOpenThreadは使えますでしょうか。

編集    削除
そだ  2008-03-24 02:31:14  No: 67889  IP: [192.*.*.*]

英語版のMSDNに書いてあります。
Requirements
Client: Requires Windows XP, Windows 2000 Professional, or Windows Me.

編集    削除
そだ  2008-03-24 02:53:25  No: 67890  IP: [192.*.*.*]

オンライン版と記述が異なっています。
Requirements
Client: Requires Windows Vista, Windows XP, or Windows 2000 Professional. 

動かないのかMeの記述をやめただけなのかは存じません。

編集    削除
TOYAMA  2008-03-25 19:23:02  No: 67891  IP: [192.*.*.*]

お聞きしたいことがあります。
デバッグAPIを使ってスレッドハンドルを取得することは可能なのでしょうか。
自アプリのOpenProcessでPROCESS_ALL_ACCESSでオープンしたプロセスIDで以下のようにアタッチ
RetValue = DebugActiveProcess( V98ProcessID );
してみたのですがRetValueでFALSEが返ってしまいます。VC++のデバッグモードで確認しました。OpenProcessはプロセスハンドルが返ってきます。
何か問題があるような気がするのですが対処方法が分かりません。どなたか宜しくお願いします。

編集    削除
そだ  2008-03-26 05:28:08  No: 67892  IP: [192.*.*.*]

GetLastError の結果はどのような感じでしょうか。

編集    削除