
VC++2008にてプログラムを作成しています。
自作プログラム(疑似エクスプローラ)にて、
ShellExecute関数でファイルをオープンさせた際に、
開かれたファイルウィンドウのHWNDまたはCWndを
取得したいのですが、実現方法が分かりません。
・やりたい事
複数ファイルをオープンさせて、各ファイルが閉じられた時に、
ファイル毎に任意の処理を行いたい。
マルチスレッドにて、CreateProcess→ファイルオープンを行い、
WaitForSingleObjectで、ファイルが閉じられるまで待機し、
コントロールが戻ってきたら、任意処理をするようにしていたのですが、
PowerPointファイルは複数ファイルを立ち上げても、
1プロセスにしかならないため、実装の変更を余儀なくされました。
CWnd->m_hWndで、各ファイルの区別が付けられるのではないかと
考え、現在、テスト用処理を組んでいるところです。
ファイルが閉じられたかどうかは、APIフックを用い、
DestroyWindowが呼ばれた際のHWNDを、自作プログラム側に送り、
ShellExecute時に取得しておいたHWND(またはCWnd)であれば、
任意処理へ移行。といった流れを考えています。
ShellExecute時に立ち上がったファイルのハンドルの
取得方法、または、全く別に、上記の目的を満たす
処理方法がありましたら、アドバイスお願いします。
No.1ベストアンサー
- 回答日時:
ShellExecuteは指定プロセスの初期化が成功すると、制御が戻ります。
この時(制御が戻った時)、ウィンドウが開かれているかどうかは
不定です。(ウィンドウの無いアプリケーションだってある)
なので、根本的な考え方を改める必要がありそうです。
FindWindow、EnumChildWindowsあたりで該当ウィンドウを得ることが
できるとは思います。ただ、見つけるまでが面倒です。
返答がかなり遅れてしまい、申し訳ありませんでした。
FindWindowで取得するにも、同名ファイルが複数開かれていた場合
目的のファイルを取得できるとは限らないため、
Add-inを作成して、データの受け渡しができるよう考えてみます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
csvファイルを開かずに文字を検...
-
Thunderbirdでemlファイルを開...
-
ファイル名の先頭にアンダース...
-
バッチで118項目のCSVを処理し...
-
ドラッグアンドドロップでファ...
-
CSVファイルへの保存の際、デー...
-
SGファイルって何ですか?
-
大きいサイズのテキストファイ...
-
なぜjQuery UIを使う時こんな...
-
VBに、Cのincludeのようなもの...
-
分割コンパイルの#defineについて
-
ASP .NETでファイル選択ダイア...
-
グローバル変数のよくない使い...
-
VBAでHTMLファイルを扱うにはど...
-
ループ中にセルの更新された値...
-
マスタとファイルの違いって?
-
Cでのネットワークファイルの読...
-
同じ名前のファイルを作った場...
-
Javaソース上でのきれいなSQLの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
ファイル名の先頭にアンダース...
-
csvファイルを開かずに文字を検...
-
バッチで118項目のCSVを処理し...
-
CSVファイルへの保存の際、デー...
-
グローバル変数のよくない使い...
-
テキストファイルの最終行を削...
-
ドラッグアンドドロップでファ...
-
VB.NETによるプロセス間通信
-
VBAにてEXCEL以外のファイル(テ...
-
分割コンパイルの#defineについて
-
ファイルの結合
-
iniファイルに追記がしたいです。
-
VBに、Cのincludeのようなもの...
-
動画処理のライブラリについて
-
Cでのネットワークファイルの読...
-
ダイアログボックスで複数フォ...
-
C言語のfopenについて教えてく...
-
「VBScript」ADODB.Streamにお...
-
マウスポインタの変更
おすすめ情報