回答編集履歴

3

追記時の日時修正

2019/04/20 05:31

投稿

dodox86
dodox86

スコア9183

test CHANGED
@@ -72,7 +72,7 @@
72
72
 
73
73
  ---
74
74
 
75
- **追記しました:(2019/04/29 14:28)**
75
+ **追記しました:(2019/04/20 14:28)**
76
76
 
77
77
 
78
78
 

2

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

2019/04/20 05:31

投稿

dodox86
dodox86

スコア9183

test CHANGED
@@ -67,3 +67,27 @@
67
67
 
68
68
 
69
69
  なお、ウィンドウの解析に便利なツール Spy++は Visual Studio 2010 Professional版には付属していますが、質問者さんご利用のExpress版に付属しているかは分かりません。
70
+
71
+
72
+
73
+ ---
74
+
75
+ **追記しました:(2019/04/29 14:28)**
76
+
77
+
78
+
79
+ **ReactOS**と言うWindows互換を目指しクローンOSがあります。
80
+
81
+ [Wikipedia - ReactOS](https://ja.wikipedia.org/wiki/ReactOS)
82
+
83
+
84
+
85
+ そのタスクマネージャーのソースが参考になるかもしれません。
86
+
87
+ [github - reactos / taskmgr](https://github.com/reactos/reactos/blob/master/base/applications/taskmgr/applpage.c)
88
+
89
+
90
+
91
+ このソース中の`EnumWindowsProc`関数の中で、
92
+
93
+ `/* Check and see if this is a top-level app window */`と言うコメント部分があり、ここでタスクマネージャーに表示しないものを選り分けています。Windows 7やWindows 10と同じ挙動とは限りませんが、先の私のコード例より、親ウィンドウやオーナーウィンドウ、拡張ウィンドウスタイルを意識するなど、選別条件が増えています。こちらのコードを参考にすること、お望みの挙動になるかもしれません。

1

表記を修正

2019/04/20 05:28

投稿

dodox86
dodox86

スコア9183

test CHANGED
@@ -62,7 +62,7 @@
62
62
 
63
63
 
64
64
 
65
- ウィンドウタイトルは`SetWindowText`を使って動的に変えることもでき、それで考えるとタイトルだけで判断するのは不十分とも言えます。厳密に判定するのであれば、タイトルだけでなく、ウィンドウクラス名や必要に応じてウィンドウの付帯情報(ウィンドウスタイルや親子関係)まで対象にすれば判別は可能だと思います。(質問者さんのコードでは、`GetClassName`でクラス名を取得していますね)
65
+ ウィンドウタイトルバーに表示されているタイトル文字列`SetWindowText`を使って動的に変えることもでき、それで考えるとタイトルだけで判断するのは不十分とも言えます。厳密にするのであれば、タイトルだけでなく、ウィンドウクラス名や必要に応じてウィンドウの付帯情報(ウィンドウスタイルや親子関係)まで対象にすれば判別は可能だと思います。(質問者さんのコードでは、`GetClassName`でクラス名を取得していますね)
66
66
 
67
67
 
68
68