質問: 現在自作プログラムから既存のアプリケーションを起動して子ウィンドウとして扱う物を作成しております。 その既存のアプリケーションは複数のウィンドウが表示されている物です。 ただし、ウィンドウの数は一定ではありません。 CreateProcessで既存のアプリケーションを起動し、そこで得たプロセスIDからEnumWindowsでそのアプリケーションのハンドルを取得しています。 その際に列挙された全てのプロセスIDから一致している物を全て取得し、IsWindowVisibleでウィンドウのプロセスかどうか判別しています。 (IsWindowVisibleを使用しての判別は正しいのかはわかりませんが、とりあえず現状上手くウィンドウの物だけ取得できてます。) 上記を踏まえて、取得した幾つかのウィンドウハンドルから、ある特定の3つのウィンドウだけを判別して子ウィンドウにしたいのですが、その判別方法がわからいというのが現状です。 一応考えたのが、ウィンドウハンドルからGetWindowTextを使用してタイトルバーに表示される名前を取得出来るようですが、既存のアプリケーションのそれぞれのウィンドウはタイトルの名前が一定ではなくころころ変更されるという仕様と、ウィンドウによってはタイトルバーが無いモノもあるので、この方法では無理だと判断しました。 またFindWindowでも出来そうなのですが、WinIDというツールを使って既存のアプリケーションのそれぞれのウィンドウのタイトルとclass名を調べたら、どのウィンドウもclass名が同じ、タイトルが設定されていない(空白?)だったので、それぞれのタイトルとclass名では判別出来なさそうです。 以上、よろしくお願いいたします。
回答: WinIDが日本語文を表示できなかったようで、Winspectorというツールを使ったら日本語のタイトル名とクラス名がわかり、それぞれのウィンドウを識別できました。