teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記時の日時修正

2019/04/20 05:31

投稿

dodox86
dodox86

スコア9394

answer CHANGED
@@ -35,7 +35,7 @@
35
35
  なお、ウィンドウの解析に便利なツール Spy++は Visual Studio 2010 Professional版には付属していますが、質問者さんご利用のExpress版に付属しているかは分かりません。
36
36
 
37
37
  ---
38
- **追記しました:(2019/04/29 14:28)**
38
+ **追記しました:(2019/04/20 14:28)**
39
39
 
40
40
  **ReactOS**と言うWindows互換を目指しクローンOSがあります。
41
41
  [Wikipedia - ReactOS](https://ja.wikipedia.org/wiki/ReactOS)

2

ReaotOSのタスクマネージャーに関する記述を追記

2019/04/20 05:31

投稿

dodox86
dodox86

スコア9394

answer CHANGED
@@ -32,4 +32,16 @@
32
32
 
33
33
  ウィンドウのタイトルバーに表示されているタイトル文字列は、`SetWindowText`を使って動的に変えることもでき、それで考えるとタイトルだけで判断するのは不十分とも言えます。厳密にするのであれば、タイトルだけでなく、ウィンドウクラス名や必要に応じてウィンドウの付帯情報(ウィンドウスタイルや親子関係)まで対象にすれば判別は可能だと思います。(質問者さんのコードでは、`GetClassName`でクラス名を取得していますね)
34
34
 
35
- なお、ウィンドウの解析に便利なツール Spy++は Visual Studio 2010 Professional版には付属していますが、質問者さんご利用のExpress版に付属しているかは分かりません。
35
+ なお、ウィンドウの解析に便利なツール Spy++は Visual Studio 2010 Professional版には付属していますが、質問者さんご利用のExpress版に付属しているかは分かりません。
36
+
37
+ ---
38
+ **追記しました:(2019/04/29 14:28)**
39
+
40
+ **ReactOS**と言うWindows互換を目指しクローンOSがあります。
41
+ [Wikipedia - ReactOS](https://ja.wikipedia.org/wiki/ReactOS)
42
+
43
+ そのタスクマネージャーのソースが参考になるかもしれません。
44
+ [github - reactos / taskmgr](https://github.com/reactos/reactos/blob/master/base/applications/taskmgr/applpage.c)
45
+
46
+ このソース中の`EnumWindowsProc`関数の中で、
47
+ `/* Check and see if this is a top-level app window */`と言うコメント部分があり、ここでタスクマネージャーに表示しないものを選り分けています。Windows 7やWindows 10と同じ挙動とは限りませんが、先の私のコード例より、親ウィンドウやオーナーウィンドウ、拡張ウィンドウスタイルを意識するなど、選別条件が増えています。こちらのコードを参考にすること、お望みの挙動になるかもしれません。

1

表記を修正

2019/04/20 05:28

投稿

dodox86
dodox86

スコア9394

answer CHANGED
@@ -30,6 +30,6 @@
30
30
 
31
31
  > これだと自分の作った他のプログラムのタイトルがこれらのタイトル名と同じだった場合にそのプログラムのハンドルまで表示されなくなってしまいます。
32
32
 
33
- ウィンドウタイトルは`SetWindowText`を使って動的に変えることもでき、それで考えるとタイトルだけで判断するのは不十分とも言えます。厳密に判定するのであれば、タイトルだけでなく、ウィンドウクラス名や必要に応じてウィンドウの付帯情報(ウィンドウスタイルや親子関係)まで対象にすれば判別は可能だと思います。(質問者さんのコードでは、`GetClassName`でクラス名を取得していますね)
33
+ ウィンドウタイトルバーに表示されているタイトル文字列`SetWindowText`を使って動的に変えることもでき、それで考えるとタイトルだけで判断するのは不十分とも言えます。厳密にするのであれば、タイトルだけでなく、ウィンドウクラス名や必要に応じてウィンドウの付帯情報(ウィンドウスタイルや親子関係)まで対象にすれば判別は可能だと思います。(質問者さんのコードでは、`GetClassName`でクラス名を取得していますね)
34
34
 
35
35
  なお、ウィンドウの解析に便利なツール Spy++は Visual Studio 2010 Professional版には付属していますが、質問者さんご利用のExpress版に付属しているかは分かりません。