|
|||
|
■フォームのCreate時に、WindowProcに関連付けます。 Windowが作成される時にWindowProcedureを呼び出します。ソースは簡単です。 |
|
private { Private 宣言 } procedure WindowProcedure(var Message : TMessage); public { Public 宣言 } //FormのCreateイベント procedure TForm1.FormCreate(Sender: TObject); begin Self.WindowProc := WindowProcedure; Message_QueryCancelAutoPlay := RegisterWindowMessage('QueryCancelAutoPlay') ; end; //Message_QueryCancelAutoPlayのトラップ procedure TForm1.WindowProcedure(Var Message : TMessage); begin if Message.Msg = Message_QueryCancelAutoPlay then begin if CheckBox1.checked then Message.Result := 1;//自動再生画面表示拒否 else Message.Result := 0; //自動再生画面表示許可 end; end; |
|
■Windowsでは、CDやDVDディスクがトレイに挿入されると 「Message_QueryCancelAutoPlay」メッセージをその時点で フォアグランドで動作するアプリケーションソフト(アクティブ)1つだけに 送って来ます。そのメッセージに応答するだけで、自動再生画面を 表示するか、否かをWindowsに指示出来ます。 但し、他のソフトをクリックしたり、起動したりすると、フォーカスが 他のソフトに移動してしまうので、メッセージをトラップ出来ません。 Kobさんどでは、「WM_DEVICECHANGE」メッセージもトラップして、 「Message_QueryCancelAutoPlay」が送られてくる前に、Kobさんどを アクティブにして、自身ににメッセージを送らせて、それを処理しています。 「WM_DEVICECHANGE」メッセージについては、ご自身で研究してください。 |
|
|
||