我需要检测我的应用程序是否在Visual Studio IDE(2005,2008和2010)下运行。
原因是我分发了我的DLL的开发者许可证,因此我需要检测DLL是否在VS下运行以检查许可证是否存在。
目前,我正在使用System.Diagnostics.Debugger.IsAttached
属性并检查我的应用程序的父进程是否为devenv.exe
。到目前为止这个工作还可以。
我想知道这是不是正确的方式,还是我错过了?
答案 0 :(得分:0)
您可以在IDE上执行时向程序提供命令行参数,类似于'-Debug'参数。
这可以通过工具栏子菜单Project-> Properties-> Debug-> Start Options,输入-Debug
或您喜欢的任何参数名称,然后在{{ {1}}函数,最简单的方法是使用'Contains'函数:
Main(string[] args)
但是,如果这仅仅是为了防止开发人员使用他们自己的程序调用未许可的DLL,他们可以通过从IDE外部启动可执行文件来绕过系统,然后在检查步骤之后附加调试器。在这种情况下,我会建议另一种许可方式。
答案 1 :(得分:0)
我见过MSDN示例使用它,我不知道有任何其他检查方法,所以我会说你正确地做了。