はじめまして。現在仕事でVC(Ver.6.0)を使っている者です。
PCのOSは、WindowsXPです。
ごみ箱フォルダをエクスプローラーで開き、このWindowを閉じたときに、
仮想ドライブ(U:)を作成する処理を作っていますが、
ごみ箱フォルダのクローズ監視がうまくいきません。
現在行っている実装方法としては、次のとおりです。
①SetWindowsHookEx()でフックを設定
②DLL用のソース上にCallWndProc()関数を作り、
そこで、生成されたごみ箱フォルダのメッセージをチェック
③ごみ箱のクローズメッセージ(WM_CLOSE)を受け取ると、
仮想ドライブ(U:)を作成する処理を実行してから、
UnhookWindowsHookEx()で、フックを解除
お手数ですが、どなたかご教授お願い致します。
−以上です−
本件の提示後、いろいろなHPを検索・調査した結果、次の実装方法で
なんとか、当該の処理を実装することができました。
・エクスプローラーのメニューの「ツール」⇒「フォルダオプション」⇒[表示]⇒「詳細設定:」内の
「別のプロセスでフォルダ ウィンドウを開く」にチェックをした状態にしておく。
(次に開くウィンドウのプロセスを一意のプロセスとして取得するため。(WinXPでは可能。))
・CreateProcessA()にて、ごみ箱フォルダをエクスプローラーで開く。
・WaitForSingleObject()にて、ごみ箱フォルダ・ウィンドウのクローズにおける監視(待機)状態にする。
・ごみ箱フォルダをクローズすると、上記API関数の監視状態が解除されて、
以降の処理が継続して実行される。
以上で問題は解決しました。おさわがせしました。