2 つの Windows アプリケーション (両方とも同じマシン上) に対して一方向の IPC メソッドが必要です。アプリケーションがCLI ベース + Windows サービスの場合、どちらが優れていますか。
PS 別のスレッドの宛先プロセス (CLI アプリケーション) にメッセージ キューを実装しました。を介してソースプロセス(GUIアプリケーション)からメッセージを投稿しますPostThreadMessage
。
そう。両方のアプリケーションが同じユーザーから実行された場合、すべて問題ありません。ローカル サービス ユーザーの下でタスク スケジューラを介して目的のアプリケーションを実行しているときに、1444 エラー コード (間違ったスレッド ID) が表示されます。
何か案は?
MSDN からの PPS
このスレッドは、同じローカル一意識別子 (LUID) を持つプロセスに属しているが別のデスクトップにあるスレッドにメッセージを投稿するには、SE_TCB_NAME 特権を持っている必要があります。それ以外の場合、関数は失敗し、ERROR_INVALID_THREAD_ID を返します。
このスレッドは、呼び出しスレッドと同じデスクトップに属しているか、同じ LUID を持つプロセスに属している必要があります。それ以外の場合、関数は失敗し、ERROR_INVALID_THREAD_ID を返します。
そう。SE_TCB_NAME
ソース プロセスからスレッドをセットアップする方法を決定する必要があります。