システム全体のキーボード フックをインストールするアプリケーションに取り組んでいます。ビジュアル スタジオ内からデバッグ ビルドを実行しているときにこのフックをインストールしたくありません (そうしないと、スタジオと最終的にシステムがハングします)。 DEBUG シンボルが定義されているかどうかを確認することで、これを回避できます。
ただし、アプリケーションのリリースバージョンをデバッグするときに、同じ問題を回避するために Visual Studio 内から開始されたことを検出する方法はありますか? リリース ビルドに取り組んでいて、デバッグ ビルドに戻すのを忘れてデバッガーを使用していくつかのバグを修正したいという理由だけで、スタジオ/コンピューターを再起動する必要があるのは非常に面倒です。
現在、このシナリオを確認するために次のようなものを使用しています。
System.Diagnostics.Process currentProcess = System.Diagnostics.Process.GetCurrentProcess();
string moduleName = currentProcess.MainModule.ModuleName;
bool launchedFromStudio = moduleName.Contains(".vshost");
これを「ブルートフォース方式」と呼びますが、これは私の設定で機能しますが、このシナリオを検出する別の (より良い) 方法があるかどうかを知りたいです。