2011-09-08 10 views
2

私のアプリケーションがVisual Studio IDE(2005、2008および2010)で動作しているかどうかを検出する必要があります。私のアプリがVisual Studioから実行されているかどうかを検出する適切な方法はどれですか?

私はDLLの開発ライセンスを配布しているので、ライセンスが存在することを確認するためにDLLがVSで動作しているかどうかを検出する必要があります。

現在、私はSystem.Diagnostics.Debugger.IsAttachedプロパティを使用して、私のアプリケーションの親プロセスがdevenv.exeであるかどうかをチェックしています。これまでのところ、これは大丈夫です。

これが適切な方法であるかどうか疑問に思っています。または、何かが見つからない場合

+3

私はあなたがこれをしたいと思うのは不思議です。デバッガでアプリケーションが異なる動作をすると、デバッグ用のレシピのように聞こえます.-) – paxdiablo

+0

@paxdiablo、私はこれを使用して、自分のDLLの開発者ライセンスを配布します。ライセンスが存在するかどうかを確認するためにDLLがVSで動作しているかどうかを検出する必要があります。 – Salvador

+0

さて、まあまあまあまあまあまあまあまあだと思う:-) – paxdiablo

答えて

0

私はMSDNの例でこれを使用しているのを見たことがあります。それ以外の方法は認識していないので、正しく実行していると思います。

0

IDEからの実行時にプログラムにコマンドライン引数を指定できます。これは '-Debug'引数に似ています。

これは、ツールバーのサブメニューProject-> Properties-> Debug-> Start Optionsで行い、-Debugまたは任意の引数名を入力し、Main(string[] args)関数でチェックするのが最も簡単な方法です

static void Main(string[] args) 
{ 
    bool isDebugMode = args.Contains("-debug"); 
} 

これは、独自のプログラムでライセンスが不要DLLを呼び出すことから開発者を防ぐために過ぎない場合には、彼らはIDEの外から実行ファイルを起動してシステムをバイパスすることができる場合があります機能を「含む」とチェックステップが実行された後にデバッガをアタッチしてください。この場合、私はライセンスの代替ルートを提案します。

+0

更新された質問をご覧ください。この解決策は元の質問では問題ありませんでしたが、開発者はライセンスチェックをバイパスするために '-debug'-typeパラメータをそのまま残すことができます。 – paxdiablo

+0

通常のライセンスがない場合は、そのライセンスを確認してください。 – Zoey

関連する問題