掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
特定のHDDでしかっ起動できないようにするには? (ID:140634)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 《案1 : 認証用プログラムを個別に作成》 であれば、特にわからない点は無いですよね。 ユーザーからシリアル文字列を受け取ったら、そのドライブ用に If [実行時に得たHDDシリアル] = [メール等で得たシリアル] Then というコードを含んだ EXE を作成するだけですので。 > HDDシリアルではなくボリュームかもしれません;; これはボリューム シリアルの方ですね。HDD シリアルは HDD(物理ディスク)単位に 割り当てられているのですが、こちらはドライブ(ボリューム)単位で割り当てられます。 HDD シリアル は、その物理ディスクの製造業者によって割り当てられる番号で、 たとえば WESTERN DIGITAL 社だと、"WD-WM3493798728" などといった値となります。 確認するだけなら、フリーソフトの CrystalDiskInfo などを使うと良いでしょう。 プログラムから取得する場合、DeviceIoControl API で DFP_RECEIVE_DRIVE_DATA を指定すれば 取れるようです。なお、環境によっては WMI 経由で取得できる可能性もあるようですが、 こちらの方法は、対応していない環境も多いかと思います。 Dim o As Object For Each o In GetObject("winmgmts:").InstancesOf("Win32_PhysicalMedia") Debug.Print o.Tag, o.SerialNumber Next 一方、ボリューム シリアル はフォーマット等を行うごとに割り当てられる番号です。 これは、ディスクイメージを丸ごとコピーするなどすると、同じ番号が複製される 可能性があります。たとえばメーカー製PC(NEC,富士通等)に搭載された HDD の場合、 同一機種/兄弟機種/販売時期の近いPCでは、異なる HDD から 同じ番号が返される事も さして珍しくありません。 このためボリューム シリアルは、機器判定による認証用途には不向きです。 --- 以下、無意味な蛇足情報 --- ボリュームシリアルとは、生成日時を基にした 32bit の値であり、 通常は 0000-0000形式で4桁-4桁の16進数として表示されます。 たとえば『1995年12月26日 21時55分41秒94』に生成された場合、 『3578-1d02』という値になります。換算式は下記のとおり。 12月26日 → 16進 → 0c,1a 41秒94 → 16進 → 29,5e 21時55分 → 16進 → 15,37 1995年 → 16進 → 07cb 0c1a + 295e = 3578 1537 + 07cb = 1d02
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.