Windowsサービスからプロセスを実行し、そこからスクリーンショットを取得する必要があります。Windowsサービスでのプロセスのスクリーンショット
BitBltとPrintWindowのWin32呼び出しを試しましたが、どちらも空白(黒色)のビットマップを示します。
通常のユーザープロセスからコードを実行するとうまくいきます。
これも可能ですか?それとも、試してみる別の方法がありますか?私たちが試した
もの:
-
ローカルシステムとして実行されている
- Windowsサービスは、ローカルシステムとしてプロセスを実行します - >スクリーンショットは、管理者として実行している
- Windowsサービスを失敗し、管理者としての処理を実行します - >スクリーンショットが失敗しました。
- ユーザーXYZとして実行されているWindowsアプリケーションは、XYZ - > screenshotとしてプロセスを実行し、BitBltまたはPrintWindowの両方で動作します。ウィンドウが他のウィンドウの後ろにある場合我々はまた、PrintWindowは、我々の場合のためにうまく機能することを気づい
ローカルシステムから「デスクトップとの対話をサービスに許可」をチェックしようとしました
その他の要件については、親プロセスと子プロセスの両方が同じユーザーの下になければなりません。あるプロセスから別のプロセスへの偽装を実際に使用することはできません。
サービスがデスクトップとやり取りできるようにしましたか? –
非常に良いアイデアだが、うまくいかなかった。私はまた、管理者ユーザーとして実行したときに、これを行うのと同じことだと思います。ユーザーはできず、管理コンソールから「デスクトップと対話するサービスを許可する」チェックボックスをオンにします。無効になっています。 – jonathanpeppers
これらを検索するには、[サーバーのデスクトップセッションでキャプチャ画面を表示する]も参照してください。(http://stackoverflow.com/questions/5200341/capture-screen-on-server-desktop-session/12851218) – Theraot