我正在开发一个安装系统范围键盘挂钩的应用程序。当我从 Visual Studio 内部运行调试构建时,我不想安装这个钩子(否则它会挂起工作室并最终挂起系统),我可以通过检查是否定义了 DEBUG 符号来避免这种情况。
但是,当我调试应用程序的发布版本时,有没有办法检测它已经从 Visual Studio 内部启动以避免同样的问题?不得不重新启动工作室/计算机非常烦人,只是因为我一直在处理发布版本,并且想要使用调试器修复一些错误,而忘记切换回调试版本。
目前我使用这样的东西来检查这种情况:
System.Diagnostics.Process currentProcess = System.Diagnostics.Process.GetCurrentProcess();
string moduleName = currentProcess.MainModule.ModuleName;
bool launchedFromStudio = moduleName.Contains(".vshost");
我将其称为“蛮力方式”,它适用于我的设置,但我想知道是否有另一种(更好的)方式来检测这种情况。