すみませんが、以下についてご指導を宜しくお願いします。
環境
・Windows 2000 Pro SP4
・VB 6.0 SP6
内容
・ハードウェアの取り外しなどを行ったときに、OS側からダイアログが
表示されます。
・このダイアログで、何のボタンが押下されたのか判定したいのですが、
可能でしょうか。
宜しくお願いします。<m(__)m>
すみません、質問内容を訂正します。
ハードウェアの取り外し後、確認ダイアログ
「'USB 大容量記憶装置デバイス' は安全に取り外すことができます。」
が表示されます。
「OKボタン押下」、「ダイアログ右上×押下」
のイベントを取得したいのですが、可能でしょうか。
宜しくお願い致します。
取れるか取れないかと言われれば、技術的には取れると思いますが
VB6のみでは取れないと思います。
次に・・・
結果どういうことを知りたいのでしょうか?
取り外しを行った後、何かイベント的同期を
取りたいのかどうか・・・
何故そういうことをしたいのかが解れば代替
策もあるかも・・・
以上。
ご連絡ありがとうございます。
処理内容を以下に記載します。
①ハードウェアの取り外しを行う。(CM_Request_Device_Eject)
②確認ダイアログを日本語→英語表示にする。
現状の不具合
複数のダイアログが表示された場合、フォーカスのあるダイアログのみ
英語化されている。
策?
案①「OK」押下で、次のデバイスを取り外す。
案②「CM_Request_Device_Eject」後のダイアログを出さない
案②を調べようと思っています。
今回の処理は、OSは日本語のまま、ハードウェアの取り外しを行った際に、
表示される日本語を英語化するでしたが、日本語を出さないに切り替えました。
VBでリムーバブルドライブを取得+unplug で進めようと思っています。
お手数をおかけしてすみませんでした。
CM_Request_Device_Ejectのパラメータはどうなってます?
PNP_VETO_TYPE VetoType = PNP_VetoTypeUnknown;
WCHAR VetoNameW[MAX_PATH];
VetoNameW[0] = 0;
CM_Request_Device_EjectW(DevInstParent,
&VetoType, VetoNameW, MAX_PATH, 0);
のようにしていますか?
それとも・・・
CM_Request_Device_EjectW(DevInstParent,
NULL, NULL, 0, 0);
としてますか?
以上。