CPUのクロック周波数を取得するには?


CS  2002-04-20 04:36:50  No: 75521

APIのRegQueryValueExstrを使用して取得しようとした所、
STRING型でデータを取得するので正しく取得出来ませんでした。
原因はレジストリの値が16進数だった為でした。
他に良い方法がありましたら、アドバイスをお願い致します。


たかみちえ  URL  2002-04-20 09:27:24  No: 75522

ええーと…。

  16進数のバイナリデータを読んだりするには、
RegQueryValueExのAPI関数の引数に、バイナリデータを読むためのフラグを設置
(ここのサンプルでは、0となっていたかも…?)
すればいいとどこかにあったはずです。
  あとは受ける変数をバイト型にすればいいんじゃないでしょうか?

  マイクロソフトのMSDNオンラインライブラリとかでわかるかも…。
もしくは、ここで探してもなんとかなりそうな気がします。
(http://www.google.com/search?q=RegQueryValueEx&sourceid=opera&num=0&ie=utf-8&oe=utf-8)
↑googleでAPI名検索

  RegQueryValueExstrという関数は…。
聞いたことがないんですけど…。


Say  2002-04-20 19:07:54  No: 75523

>  RegQueryValueExstrという関数は…。
>聞いたことがないんですけど…。

レジストリの値を取得するAPI関数です。
ネーミングが悪いので有名です。

http://madia.world.coocan.jp/vb/API/RegQueryValueExStr.htm

>CPUのクロック周波数を取得
このレジストリキーはOSによって異なるようですので、
レジストリから取得するのはお勧めできません。

CPUの種類や個数ならGetSystemInfoでも取得できますが、

CPUのクロック周波数をまじめに取得しようと思ったら、
アセンブラを駆使する必要があります。
vectorあたりにDLLが転がってますから、それを利用したほうが楽でしょう。
(計測しているようです。)

BIOSにシステムクロック情報があるはずですから、これとCPU情報から
理論値は計算できると思うのですが、特権レベルで動く必要がありそうなので、
Windows上で取得するにはドライバ作る必要あるかもしれません。
(DOSなら簡単なんですが)


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加