:
は、あなたがサービスを開始する直前にこれを入れてください。
String sYourServiceName = @"MyService" //Change this to r service name
ConnectionOptions co = new ConnectionOptions();
co.Impersonation = ImpersonationLevel.Impersonate;
ManagementScope mgmtScope = new System.Management.ManagementScope(@"root\CIMV2", co);
mgmtScope.Connect();
ManagementObject wmiService;
wmiService = new ManagementObject("Win32_Service.Name='" + sYourServiceName + "'");
ManagementBaseObject InParam = wmiService.GetMethodParameters("Change");
InParam["DesktopInteract"] = true;
ManagementBaseObject OutParam = wmiService.InvokeMethod("Change", InParam, null);
または
ログオンページからシステムアカウントとしてiexplore
「インターネットエクスプローラ」を実行してみます。 WindowsサービスからProcess.Start("Iexplore.exe")
を実行するだけで正常に動作するはずですが、iexplore
をシステムレベルのアカウントとして実行できるかどうかはわかりません。
そうしないと、あなたはデスクトップとの対話を可能にすることによって、これを行うことができ、基本的なキーグラバーやMENU+L
ロックアウトをブロックするキーロガーを書き込むことによって、ロックアウト画面を阻止しようとすることができます。私は、サービスに行き、あなたのサービスをクリックすることによって、より簡単にするか、手動で行うためのコードを投稿しました。そこに、テキストinteract with desktop
のチェックボックスが表示されます。
// M
ありがとうCodeCanvas。 しかし、IEスクリーンショット全体が必要です。あなたのソリューションの言及は、Webページのみのスクリーンショットをキャプチャしています。IEスクリーンショット全体が必要です。 これに関する解決策はありますか? – Ankit
@Ankit:申し訳ありませんが、ロックされたウィンドウセッション内で実行されているアプリケーションのスクリーンショットを取得するために使用する方法については気付きません。 –