機器を制御するためにPC上でローカルプロセスとして実行されるEquipCtrl.exeと呼ばれるC#で記述されたアプリケーションがあるとしましょう。
明らかに、各PCで実行するEquipctrlのインスタンスを1つだけにしたいです。PCごとに制御する機器が2つある場合は、PCごとに2つのインスタンスに制限します。
私がした方法は、1。プロセス名のいずれかでした。プロセスにEqCtrlという名前を付けます。プロセスの起動時に、「EqCtrl」という名前のプロセスの数がカウントされます。2.実行名。起動時に、実行名がEquipCtrl.exeのプロセスの数を数えます。3.レジストリレコード。4.SQLServerデータベースレコード。
私にとって、プロセス名または実行名の検出は最も単純であり、ほとんどの場合(すべてではないにしても)実行します。ただし、名前が衝突する可能性があります。さらに実行パスを調べても、実行ファイルを別のフォルダにコピーすることで制限を回避できる可能性があります。
.NETで実行制限を実行するための最良の方法は何ですか?なんで?レジストリレコードは最良の方法ですか?