2011-10-18 9 views
0

私は、私たちの製品特有のライセンスアプリケーションを作成しています。それは非常に詳細で精巧ではありませんが、私たちのビジネスにとってはうまくいくでしょう。リモートデスクトップユニークなGUID

ライセンスは、プログラムの実行時にオプションとして渡されるワークステーションIDを使用して、ハードウェア(ネットで入手した3つの部分)を結び付けます。したがって、ワークステーションID XXXはコンピュータYYYYY上で実行する権限があります。

私が見た唯一の抜け穴は、一度だけ実行することが許諾されている場合に、RDPを超えてアプリケーションを何度も実行できることです。一般的には

ライセンスを割り当てて、別のセッションから複数のライセンスを取得した場合にライセンスが割り当てられないようにするにはどうすればよいですか?

これはピア2ピアネットワーク上で実行されるため、ほとんどの場合、タスクマネージャをチェックしてプログラムの開始時に何が実行されているかを確認することはできません。

誰かが、ライセンスを結ぶためにRDP接続で追跡できるものについて何か提案していますか?

ありがとうございます!

答えて

2

あなたの目標が正しく理解されていれば、アプリケーションの実行をより頻繁に禁止することができます。また、アプリが別のセッションで同じマシンで実行されている場合を除いて、すでに解決済みです。

それで、同じマシンで(別のセッションであっても)アプリケーションを2回目に起動させないようにするメカニズムが必要なだけです...グローバルミューテックスを使って実現することができます... http://msdn.microsoft.com/en-us/library/system.threading.mutex.aspx

バースでは、名前の接頭辞としてGlobal\という名前のミューテックスを作成します。そのミューテックスが既に存在する場合、このマシンではすでにアプリケーションが実行されています(同じセッションまたは別のセッション)...同じセッションで2回目のセッションが実行されないようにするには、Local\を接頭辞として使用します。

+0

+1グローバルMutExは、アプリケーションの複数のインスタンスが実行されないようにします。このドキュメントを参照してください:http://msdn.microsoft.com/en-us/library/f55ddskf.aspx – qJake

+0

これは素晴らしい情報であり、質問の半分に答えています。アプリケーションを最初に開いたときにライセンスを結びつけるのは何ですか?セッションに入るためのライセンスがあることを確認できますか? – ErocM

+0

私は完全に理解しているかどうかわかりません...あなたは既にライセンスをいくつかのHW固有の値に結びつけているという質問に書いています。それらを文字列に変換して、例えばMutex名の一部として使用することができます。 ..もし私が間違っていたらもっと詳しく説明してください... – Yahia