createProcessAsUser でカスタム アプリケーションを実行するための Windows サービスを作成しました。その結果、予想どおり、セッション ID 0 の SYSTEM ユーザーで実行されている 1 つのアプリケーションが作成されます。私の問題は、このアプリケーションと現在のユーザーが作成した他のアプリケーションとの間で通信を行う必要があることです。
デスクトップ イベント (SC_SCREENSAVE、モニター オフ) が発生した場合、現在のユーザー アプリによってイベントがキャッチされた場合、SYSTEM アプリケーションにそれを伝える必要があります。利用した:
SendMessage(HWND_BROADCAST, CURRENT_USER_HAS_DONE_SOMETHING, 0, 0);
SYSTEM アプリケーションが多くのシステム イベント (サスペンド、ログオフなど) をキャッチし、同じセッション ID で実行されている場合でも、カスタム メッセージがキャッチされることはありません。Sendmessage が SYSTEM ユーザーに対して機能しないようです。
ユーザーの現在のセッションから SYSTEM アプリケーションにメッセージを送信するにはどうすればよいですか?