人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

WindowsXP SP3以降における.NETで質問です(言語はVB2008)とします。

インストールされたPCに依存する固有のIDを取得したいと考えています。
なにか良い方法をご存じの方は教えてください。

つまり、AというPCに、xというソフトを入れた場合、a'というIDを取得でき
その後、xを一度アンインストールして、Aへ再度入れなおしてもa'という
IDが再取得できます。
一方、BというPCに、xというソフトを入れた場合、取得できるIDはb'であり
B上からはa'のIDが取得できることはないようにしたいのです。

調べてみたら、Win32_OperatingSystemクラスを利用して取得できる
System.Management.ManagementObjectから、"SerialNumber"を呼び出すことで
それぞれ別のIDが取得できるように思えました。
しかし、共通項は見つけられていないのですが、xのログを調べてみると
PCによっては、"SerialNumber"から取得できる値は、空であるケースがあることに
気が付きました。

そこで、"SerialNumber"に代わるものはないか、知恵を借りたい次第です。
よろしくお願い致します。

※「そんなものはありません」という答えはコメント欄に記載してください。
回答に記載頂いた場合は、不適切な解答とさせていただきます。

●質問者: くじぇ
●カテゴリ:コンピュータ
✍キーワード:.NET Mクラス pc VB2008 WindowsXP
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● tasklight
●27ポイント

Win32_WindowsProductActivation の ProductIDプロパティにインストールされたWindowsのプロダクトキーが入っていますので、それをユニークキーにしてみてはいかがでしょう。

◎質問者からの返答

tasklightさん、ありがとうございます。

参考にさせていただきます。


2 ● 勇者よっしー
●18ポイント

今時ネットワークカードが無いPCというのは無いので、MACアドレスはどうでしょうか?

◎質問者からの返答

yossiy7さん、ありがとうございます。

コメント欄にも記載したのですが、ユーザがMACアドレスを修正できるケースもあるというのが問題ですね。

@IT:Windows TIPS -- Tips:ネットワーク・インターフェイスのMACアドレスを変更する

http://www.atmarkit.co.jp/fwin2k/win2ktips/356macaddr/macaddr.ht...


3 ● 勇者よっしー
●27ポイント ベストアンサー

MACアドレスが駄目なら、HDDのシリアル番号とかどうでしょうか。

http://www.google.co.jp/search?hl=ja&q=windows+HDD+%E3%82%B7%E3%...

トップから検索してVBでの取得方法のサンプルプログラムも見つかりました。

◎質問者からの返答

yossiy7さん何度もありがとうございます。

今のところCPUの番号と、OSのインストール日時で対応していたのですが

HDDのシリアル番号も検討させて頂きます。


4 ● h_kondo
●18ポイント

機械本体シリアル番号が取得できる場合は、それを使用する。

シリアル番号が取得できない場合はWindowsのプロダクトIDを使用するという処理でよいと思います。

同じソフトの同時起動を防ぐという程度の保護でしたら、USBメモリのシリアル番号をチェックする

ことでソフトウエアとUSBメモリをひもづけて置くという方法はどうでしょう。


5 ● moonskyinfo
●10ポイント (はてなにより削除しました)
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ