レジストリ情報から 64bit OS / 32bit OS の見分け方について

Anonymous
2011-08-31T06:45:16+00:00

レジストリ情報から64bitOS、または32bitOSの見分ける方法を探しております。

以前は、下記レジストリ情報のあり/なしで64bit/32bitを判別していました。

 ・HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node

  ※上記キーがある場合は64bit、ない場合は32bit。

ところが、最近、32bitのVISTAにも上記レジストリ情報が存在することに気付き、

急遽、別のレジストリ情報から見分ける方法を探しています。

宜しくお願いします。

家庭向け Windows | 以前の Windows バージョン | アプリ

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません
{count} 件の投票
質問作成者が受け入れた回答
  1. Anonymous
    2011-08-31T13:30:06+00:00

    本来32ビットのVistaにはHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Nodeキーはないと思いますが、作成するのは簡単なので何かのアプリなどが作ったのかもしれませんね。

    はっきりとは知らないのですが、以下の環境変数で判断が付くかもしれません。

    %PROCESSOR_ARCHITECTURE%

    32ビットの場合には"x86"、64ビットの場合には"AMD64"や"IA64"という値になっていると思います(コマンドプロンプトでsetと入力してEnterすれば確認できます)。

    同じことが、以下のレジストリでもわかるはずです。

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment キーの、PROCESSOR_ARCHITECTURE エントリ

    4 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません

3 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2011-09-01T01:59:19+00:00

    OMEGATさん回答ありがとうございました。

    教えていただいたレジストリ情報から、

    32bit/64bitを見分けることができました。

    どうもありがとうございました!

    0 件のコメント コメントはありません
  2. Anonymous
    2011-09-09T05:03:58+00:00

    モデレーター注 : スレッドを統合させていただきました。

    統合前スレッドタイトル - レジストリ情報から 64bit OS / 32bit OS の見分け方について②

    前回、このフォーラムから下記レジストリ情報から判断できることを教えて頂きました。

      レジストリキー:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment

      レジストリ名  :PROCESSOR_ARCHITECTURE

      レジストリ値  :x86 / AMD64 / IA64

    当方の事情で上記レジストリ情報を使用できないため、別のレジストリ情報から判断できるキーを探しております。

    候補として、下記レジストリ情報を発見したのですが、

      レジストリキー:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion

      レジストリ名  :ProgramFilesDir (x86)

      判断      :上記レジストリ情報がある場合は64ビットOS、ない場合は32ビットOS

    この情報をもって 64bit OS / 32bit OS を判断するのは間違っていますでしょうか。

    宜しくお願いします。

    0 件のコメント コメントはありません
  3. Anonymous
    2011-09-10T14:21:56+00:00

    間違いとは言えないと思いますが、最初の質問にもあったように本来32ビットには存在していないレジストリも作ろうと思えば作ることは可能なので、100%とは言えないかもしれません。

    どのようなプログラム環境(言語も含み)で行おうとしているのか、なぜ特定のレジストリ情報が使用できないのかなどを補足すれば情報が集まりやすいかもしれません。

    環境によってはレジストリを参照するより確実な方法があるかもしれませんので。

    BATやVBSなどであれば、環境変数%PROCESSOR_ARCHITECTURE%や、systeminfoコマンドの結果などからでも判定は可能かもしれません。

    0 件のコメント コメントはありません