質問: Windowsのロック画面中に、USB接続のリモコン操作をトリガーに、 デスクトップアプリの該当のボタンに「マウスクリック」のSendMessageを送信したい と考えています。 ``` ※マウスクリック時の処理を直接呼出しが出来れば簡単ですが、 外部アプリケーションでAPIがないため、 マウス操作をプログラムで実施して、処理を呼び出す方法を考えています。 ``` 下記に、マウスクリック部のソースを抜粋しますが、 ロック画面でなければ実現できているため、 ロック画面中だと、デスクトップにマウス操作は通知できないのかと思います。 実現方法をご存じの方はいないでしょうか。 ---- ソース抜粋 開始 ----- ~ USBリモコンのボタンイベントのハンドル部 ~ //マウス左クリックダウン SendMessage(クリック対象のボタンハンドル, WM_LBUTTONDOWN, MK_LBUTTON, 0x000A000A); //マウス左クリックアップ SendMessage(クリック対象のボタンハンドル, WM_LBUTTONUP, 0x00000000, 0x000A000A); ~ USBリモコンのボタンイベントのハンドル部 ~ ----- ソース抜粋 終了 -----
回答: sayuriさんが書かれているように、ユーザーが起動したアプリでロック画面の入力を受け取ったり、あるいはロック画面を操作するようなことはできません。ロック画面がというより、デスクトップ.aspx)を超えてメッセージの送受信などを行うことができないようになっています。一方、ロック画面に切り替わった状態でも元のデスクトップで起動したアプリケーション同士はウィンドウメッセージの送受信ができます。 ですから、壁となっているのはメッセージ送信ではなくUSBリモコンからのイベント受信ではないのでしょうか?これをウィンドウメッセージに頼っているとロック画面で受信するのは難しいでしょうし、ソケット通信やシリアル通信であればデスクトップがアクティブでなくとも受信できます。