私はいたるところを検索し、ほぼすべてを試しましたが、これは不可能だと思い始めています。セッション0(win7)でSYSTEMとしてサービスを実行しています。外部アプリケーションを起動する必要があります。外部アプリケーションをSYSTEMとして起動するだけで、アプリケーションが起動し、GUIが表示されます(UI0Detectを使用してセッション0をクリックした場合)。私がそれを見ることができることに加えて、アプリケーションを起動した私のサービスは、実際にGUIのスクリーンショットを撮り、それをサーバーに送り返すことができます。-この時点ですべてが良好です。
問題-外部アプリケーションがSYSTEMコンテキストで実行できない場合があります。このような場合、別のユーザーとして起動する必要があります。セッション0で実際のユーザーとして実行している別のサービスがあります。次に、この別のユーザーとして外部アプリケーションを起動します。外部アプリケーションはセッション0で起動され、WinSta0 \ Defaultを指定して、SYSTEMサービスが認識できるのと同じデスクトップでアプリケーションGUIが起動されるようにします。これが発生すると、UI0Detectがポップアップ表示され、クリックしてウィンドウが表示されるという印象を与えます。セッション0に戻るとき、またはサービスがスクリーンショットを試行するとき、小さなブラックボックスが表示されます。これは、SYSTEMアカウントのみがセッション0でウィンドウをレンダリングできるようです-これは本当ですか?セッション0で実行されているユーザーアカウントがGUIをレンダリングできるかどうか誰かが知っていますか?
セッション0からアクティブユーザーのデスクトップにアプリケーションを起動する方法に関するコードを探していません。それは十分に文書化されています。私が知る必要があるのは、逆(一種)をどのようにやってのけるかです。SYSTEM以外のアカウントからセッション0でGUIを起動する必要があります。