HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0916
可憐HDDのGUID取得方法4未解決


可憐

リンク

2013/9/16(Mon) 01:42:25|NO.57169

御世話になります。

個人個人のパソコンの情報を区別したいのですが
そのなかでHDDのGUIDというものがあるらしいです。
なのでHDDのGUIDを取得したいと考えているのですが
どんなソースを書いたらいいのか思い付きません

方法があるサイトさんの転載になるのですが

1:windowsがインストールされているフォルダを得る
2:そのフォルダーのドライブを得る
3:ドライブのGUIDを得る

とのことです。

HSPでできるのかもわかりません

サンプルを書いて頂けたらとても嬉しいです

何卒よろしくお願いいたします。

仕事の関係で返事が遅れると思います。
よろしくお願いします。



この記事に返信する


kanahiron

リンク

2013/9/16(Mon) 01:59:14|NO.57171

PCは自作できる程度の知識しかないのですが、なにか根本的に間違えているような気がします

GUIDはMACアドレスなどにも使われているかぶることの無い数値のようですね
これは、HDDのGUIDとは別のものです

>そのなかでHDDのGUIDというものがあるらしいです。
HDDは記録するものなのですが、記録する為の方式(厳密には違います)は2種類あります
古くから使われているが、最近の大容量化に追いつけない「MBR」
比較的新しいPCでしか扱えないがとんでも無い容量を扱える「GPT」
で、GPTは「GUIDパーティションテーブル」の略です
おそらく可憐さんはこれを混合してしまっているみたいです
名前にGUIDなんて入ってますが、恐らくなにも関係ないものです

PCの固有のIDを得たいとのことですが、この掲示板でも同じ話題が出ています
ログ検索してみてはいかがでしょうか?

ちなみに
>1:windowsがインストールされているフォルダを得る
>2:そのフォルダーのドライブを得る
>3:ドライブのGUIDを得る
この方法は、使用しているHDDがMBRなのかGPTなのかを得る方法だと思います



hoge

リンク

2013/9/16(Mon) 07:21:31|NO.57172

> kanahiron
そのGUIDではなくここで出てるGUIDのことでは?
http://morgansimonsen.wordpress.com/2009/01/26/displaying-the-volume-guid-of-a-volume/

mountvol.exeを使うかレジストリ自力で読めばよいようですね。



pizza

リンク

2013/9/17(Tue) 03:51:47|NO.57195

可憐さんが見たであろう方法が載ってるサイトさんで
DLできるファイルにCのソース入ってますよ。
使ってある関数は

GetWindowsDirectoryA
GetVolumePathNameA
GetVolumeInformationA
GetVolumeNameForVolumeMountPointA

の四つ。
kernel32.asだけインクルードしておけばいけるはず。



fortunehill

リンク

2013/9/18(Wed) 01:27:46|NO.57216

/*お節介*/

#uselib "kernel32.dll" #func global GetWindowsDirectoryA "GetWindowsDirectoryA" sptr,sptr #func global GetVolumePathNameA "GetVolumePathNameA" sptr,sptr,sptr #func global GetVolumeInformationA "GetVolumeInformationA" sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr #func global GetVolumeNameForVolumeMountPointA "GetVolumeNameForVolumeMountPointA" sptr,sptr,sptr sdim buf,512,3 GetWindowsDirectoryA varptr(buf(0)),512 mes stat mes buf(0) GetVolumePathNameA varptr(buf(0)),varptr(buf(1)),varptr(buf(2)) mes stat mes buf(1) mes buf(2) GetVolumeInformationA varptr(buf(1)),0,0,varptr(val),0,0,0,0 mes stat mes strf("%x",val) GetVolumeNameForVolumeMountPointA varptr(buf(1)),varptr(buf(0)),512 mes stat mes buf(0) ;UUID取得なら下記だけでいいと思う sdim ss,512 GetVolumeNameForVolumeMountPointA "C:\\",varptr(ss),512 mes stat mes ss



ONION software Copyright 1997-2023(c) All rights reserved.