【发布时间】:2008-09-19 13:29:07
【问题描述】:
我正在开发一个安装系统范围键盘的应用程序 钩。我不想在运行调试时安装这个钩子 从视觉工作室内部构建(否则它会挂起工作室 最终是系统),我可以通过检查是否 已定义 DEBUG 符号。
但是,当我调试 release 版本的应用程序时,是 有一种方法可以检测到它是从内部视觉开始的 工作室避免同样的问题?不得不这样做很烦人 重启工作室/电脑,只是因为我一直在工作 发布版本,并希望使用调试器修复一些错误 忘记切换回调试版本。
目前我使用这样的东西来检查这种情况:
System.Diagnostics.Process currentProcess = System.Diagnostics.Process.GetCurrentProcess();
string moduleName = currentProcess.MainModule.ModuleName;
bool launchedFromStudio = moduleName.Contains(".vshost");
我将其称为“蛮力方式”,它适用于我的设置,但我想知道是否有另一种(更好的)方式来检测这种情况。
【问题讨论】:
-
注意:在尝试从 Visual Studio 测试启动并通过在 IIS Express 下运行的代码时,我得到了以下字符串。因此,任何阅读本文的人都可能需要相应地调整代码。