ウィンドウサービスを利用して画面をロックしたい。私のOSはwin 7で、サービスにいくつかの権利の問題があることを知っています。そのため、次の実験を行いましたが、実験はどれもうまくいきませんでした。
新しい exe ファイルを作成し、LockWorkStation 内で呼び出しました。手動で画面をロックしますが、サービスからこの exe を呼び出すと、アクセスが拒否されます。
ここに私のサービス内の発信者コードがあります
if (CreateProcess(folder.c_str(),NULL, NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo))
{
::WaitForSingleObject(processInfo.hProcess, 1000);
DWORD exit = 100;
GetExitCodeProcess(processInfo.hProcess, &exit);
CloseHandle(processInfo.hProcess);
CloseHandle(processInfo.hThread);
}
それを実行するために、現在のWindowsユーザーIDとパスワードでサービスにログオンしました。それでもうまくいかなかったので、デスクトップと対話するサービスを許可するにチェックを入れました。これを使用すると成功し、エラーは表示されませんが、画面はロックされません。(デスクトップサービスとのやり取りが安全でないことは知っていますが、それに関する解決策があるかどうか考えていますか?)