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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
1114
taka環境変数と32bit64bitOSの切り分け2解決


taka

リンク

2009/11/14(Sat) 15:46:06|NO.28871

起動しているWindowsが32ビットなのか64ビットなのか判定するため、
環境変数を使いたいのですが、set コマンドと HSP32a で実行した場合に
相違があります。これは正常な状態なのでしょうか?

当面、c:\Program Files(x86)にファイルがあるかで判定していますが
ほかに切り分ける方法はありませんか?

windowsの cmd.exe を起動して set コマンドを実行したの環境変数が
64bitOS(Windows7pro/Core2DuoE8400)の場合
PROCESSOR_ARCHITECTURE = AMD64
ProgramFiles = C:\Program Files
ProgramFiles(x86) = C:\Program Files(x86)
32bitOS(WindowsXPpro/Core2QuadQ8200)の場合
PROCESSOR_ARCHITECTURE = x86
ProgramFiles = C:\Program Files
ProgramFiles(x86) = 存在しない

HSP3で環境変数を取得した場合
64bitOS(Windows7pro/Core2DuoE8400)の場合
PROCESSOR_ARCHITECTURE = x86 ← setの場合と相違
ProgramFiles = C:\Program Files(x86) ← setの場合と相違
ProgramFiles(x86) = C:\Program Files(x86)
32bitOS(WindowsXPpro/Core2QuadQ8200)の場合
PROCESSOR_ARCHITECTURE = x86
ProgramFiles = C:\Program Files
ProgramFiles(x86) = %ProgramFiles(x86)% ← 存在しないため

よろしくお願いします



この記事に返信する


inovia

リンク

2009/11/14(Sat) 18:03:08|NO.28872

64bit環境がないのでわかりませんが、
http://d.hatena.ne.jp/KIICHIGO/20071217/1197863793
によると、windows\system32\cmd.exe (64bit版) だと
PROCESSOR_ARCHITECTURE はAMD64 を返し、
windows\SysWOW64\cmd.exe (32bit版)だと
PROCESSOR_ARCHITECTURE は x86 を返すそうです。

HSP3は32bitなので、x86を返しているのでは?



taka

リンク

2009/11/16(Mon) 21:12:21|NO.28890

inovia さん ありがとうございました。

環境変数 ProgramFiles(x86) の値で、Windowsが
32bitなのか64bitなのか判断するようにします。



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