检测我的应用程序是否从Visual Studio运行的正确方法是哪种?

时间:2011-09-08 01:07:08

标签: .net visual-studio

我需要检测我的应用程序是否在Visual Studio IDE(2005,2008和2010)下运行。

原因是我分发了我的DLL的开发者许可证,因此我需要检测DLL是否在VS下运行以检查许可证是否存在。

目前,我正在使用System.Diagnostics.Debugger.IsAttached属性并检查我的应用程序的父进程是否为devenv.exe。到目前为止这个工作还可以。

我想知道这是不是正确的方式,还是我错过了

2 个答案:

答案 0 :(得分:0)

您可以在IDE上执行时向程序提供命令行参数,类似于'-Debug'参数。

这可以通过工具栏子菜单Project-> Properties-> Debug-> Start Options,输入-Debug或您喜欢的任何参数名称,然后在{{ {1}}函数,最简单的方法是使用'Contains'函数:

Main(string[] args)

但是,如果这仅仅是为了防止开发人员使用他们自己的程序调用未许可的DLL,他们可以通过从IDE外部启动可执行文件来绕过系统,然后在检查步骤之后附加调试器。在这种情况下,我会建议另一种许可方式。

答案 1 :(得分:0)

我见过MSDN示例使用它,我不知道有任何其他检查方法,所以我会说你正确地做了。