私は、サービスのコンテキストで動作するDLLを作成しており、標準のwin32プロセスにロードすることができます。サービスのコンテキストで実行されているのか、標準のwin32プロセスのコンテキストで実行されているのかをどのように検出できますか?DLLがWindowsサービスのコンテキストで動作するかどうかを確認するにはどうすればよいですか?
2
A
答えて
4
Session 0 Isolationによると、Vistaで導入された、Windowsサービスを決定するには、セッション0で実行プロセスがセッション0で実行されている場合は、ProcessIdToSessionId機能を使用できます。GUIについてあなたのコメントに関連して
DWORD session_id;
if (ProcessIdToSessionId(GetCurrentProcessId(), &session_id))
{
std::cout << "session_id=" << session_id << "\n";
}
else
{
std::cout << "Failed : " << GetLastError() << "\n";
}
を、リンクされたドキュメントから直接引用しないために:セッション0は、もはやユーザーセッションですので
、セッション0で実行されているサービスは、ビデオドライバにアクセスすることはできません。これは、サービスがグラフィックをレンダリングしようとする試みが失敗することを意味します。
+0
あなたは素晴らしいです。 – tzachi
関連する問題
- 1. 現在のユーザーにWindowsサービスを再起動する権限があるかどうかを確認するにはどうすればよいですか?
- 2. WindowsプロセスがC++で別のWindowsプロセスが親プロセスであるかどうかを確実に確認するにはどうすればよいですか?
- 3. WebサービスがRunscopeとランダムな文字列で動作しているかどうかを確認するにはどうすればよいですか?
- 4. 実行ファイルのパスを使用してWindowsサービスがインストールされているかどうかを確認するにはどうすればよいですか?
- 5. ユーザーがindex.htmlにいるかどうかを確認するにはどうすればよいですか?
- 6. ポップアップページが開いているかどうかを確認するにはどうすればよいですか?
- 7. Scala - オブジェクトがスレッドセーフであるかどうかを確認するにはどうすればよいですか?
- 8. フォームがヘルプモードであるかどうかを確認するにはどうすればよいですか?
- 9. アンドロイドアプリがハイブリッドアプリであるかどうかを確認するにはどうすればよいですか?
- 10. Java - シーンがフルスクリーンモードであるかどうかを確認するにはどうすればよいですか?
- 11. ジェネリックメソッドパラメータが値型であるかどうかを確認するにはどうすればよいですか?
- 12. オブジェクトがコレクションであるかどうかを確認するにはどうすればよいですか? (スウィフト)
- 13. ウィンドウがオフスクリーンであるかどうかを確認するにはどうすればよいですか?
- 14. ファイルが空であるかどうかを確認するにはどうすればよいですか?
- 15. URLが画像であるかどうかを確認するにはどうすればよいですか?
- 16. TextFieldが整数であるかどうかを確認するにはどうすればよいですか?
- 17. オブジェクトが「空」であるかどうかを確認するにはどうすればよいですか?
- 18. テキストエリアが空であるかどうかを確認するにはどうすればよいですか?
- 19. C#Windowsサービス用のOnRestart()イベントリスナーはありますか? Windowsサービスが再起動されたかどうかはどのように確認できますか?
- 20. ネットパイプサービスがリッスンしているかどうかを確認するにはどうすればよいですか
- 21. ハイブ、ImpalaのようなclouderaサービスがJavaコードで実行されているかどうかを確認するにはどうすればよいですか?
- 22. Facebookのタイムラインがあるかどうかを確認するにはどうすればよいですか?
- 23. ファイルが存在するかどうかを確認するにはどうすればよいですか?
- 24. レポが存在するかどうかを確認するにはどうすればよいですか?
- 25. ルート「URL」が存在するかどうかを確認するにはどうすればよいですか?
- 26. メールアドレスが存在するかどうかを確認するにはどうすればよいですか?
- 27. ファイルが存在するかどうかを確認するにはどうすればよいですか?
- 28. 変数が存在するかどうかを確認するにはどうすればよいですか?
- 29. リソースが存在するかどうかを確認するにはどうすればよいですか?
- 30. コンピュータにWiFiアダプタがあるかどうかを確認するにはどうすればよいですか?
魔法で賢いことをしようとするDLLは後でひどく失敗する傾向があります。あなたはあなたがどんな状況にあるのかに基づいて、どういうふうに行動しますか?呼び出し元に明示的にDLLを適切なモードに設定させる方が良いでしょう。 –
どのバージョンのWindowsですか? – hmjd
サービス*は標準のWin32プロセスです。あなたが本当に*この問題で解決しようとしている問題を記述してください。 –