- ベストアンサー
ShellExecuteでopenしたウィンドウのハンドルを取得
こんにちは ShellExecuteでopenしたウィンドウのハンドルを取得して、MoveWindowでサイズや位置を変更したいのですが、どうしてもハンドルが取れません。 どのような記述をすればよろしいか、ご存知の方はいらっしゃいませんでしょうか 宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ShellExecuteに限らず、子プロセスを起動した場合、初期化が成功すれば 制御が戻ります。それ以降に作成されるWindowのハンドルは単純には見つけ られません。 (1)Windowのクラスやタイトルバーテキストが分かっている場合 FindWindow、FindWindowExを使います。 http://msdn.microsoft.com/ja-jp/library/cc364634.aspx http://msdn.microsoft.com/ja-jp/library/cc410853.aspx (2)親ウィンドウを渡し、子Windowが1個しかないと分かっている場合 EnumChildWindowsを使います。 http://msdn.microsoft.com/ja-jp/library/cc410802.aspx (3)上記以外 CreateProcessかShell関数で、プロセスIDを取得します。 EnumWindowsでウィンドを順番に取得し、GetWindowThreadProcessIdで ウィンドウのプロセスIDを求めて一致するものを見つけます。 http://msdn.microsoft.com/ja-jp/library/cc429066.aspx http://msdn.microsoft.com/ja-jp/library/cc410851.aspx http://msdn.microsoft.com/ja-jp/library/cc364779.aspx
お礼
返信遅くなりまして、申し訳在りません。 ウィンドウ名からハンドルを取得することができました。 本当にありがとうございました。 またの機会があれば、宜しくお願い致します。