マクロでXP/Vistaを識別したいNo.25232
さん 08/08/03 21:45
 
いつも秀丸エディタを愛用しております。作者およびサポートのみなさまに感謝して
おります。

動作しているOS環境がXP/Vistaのいずれかを識別するマクロ文の書き方を教えてくだ
さい。

XP/Vistaで処理すべきファイルの場所が異なるので、マクロ中で差を吸収しようと考
えています。したがって、OS名そのものがわからなくても、実質的にどちらか識別で
きる方法でかまいません。

よろしくお願いします。

[ ]
RE:25232 マクロでXP/Vistaを識別したいNo.25233
ぷれりゅ〜ど さん 08/08/03 22:45
 
こんばんは、ぷれりゅ〜どです。

getenvでuserprofileを取得するって手はどうでしょう?

$path = getenv( "userprofile" );

XPでは、\Documents and Settings\ユーザ名
Vistaならば、\Users\ユーザ名

と$pathに入ると思います。。。けど、
これは全然スマートじゃないですかね(^^;

>XP/Vistaで処理すべきファイルの場所が異なるので、

の意味は、マイドキュメントかな〜?
とか思ったりしたのですが。

的外れでしたら、ご容赦ください。

[ ]
RE:25232 マクロでXP/Vistaを識別したいNo.25234
elbow さん 08/08/04 00:24
 
こんにちは
elbowと申します

田楽DLLを使用してもよいのであればGETOSINFOという関数が用意されているので
$s = dllfuncstr("GETOSINFO","major");
でXPならば5、Vistaならば6が戻ってくると思います。

レジストリだけで判断するとなると
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentVersion
あたりを見ればいいのでしょうけど、ユーザーが書き換えている可能性があるので
確実に正確な値がとれるとは限りません。(ほとんどの人は書き換えていないと思い
ますが)

田楽DLLが使えるのであればそれを使用するのがよいと思います。
#秀丸担当さんに新規マクロ関数を用意してもらうという選択肢もありますが ;-)

[ ]
RE:25234 マクロでXP/Vistaを識別したいNo.25237
秀丸担当 さん 08/08/04 09:52
 

>XP/Vistaで処理すべきファイルの場所が異なるので、マクロ中で差を吸収しようと考
>えています。したがって、OS名そのものがわからなくても、実質的にどちらか識別で
>きる方法でかまいません。

おそらく、ぷれりゅーどさんやelbowさんの書かれた方法でできるのではないか
と思います。
getenvで取得できる情報は、OSのバージョンは分からないですが、コマンドプロ
ンプトで set と入力すると出てくるものがいろいろ取得できます。

キーワードでの取得は、将来バージョンで検討したいと思います。

[ ]
RE:25232 マクロでXP/Vistaを識別したいNo.25241
三月 さん 08/08/04 18:56
 
>
>動作しているOS環境がXP/Vistaのいずれかを識別するマクロ文の書き方を教えてく
>ださい。
>
>XP/Vistaで処理すべきファイルの場所が異なるので、マクロ中で差を吸収しようと
>考えています。したがって、OS名そのものがわからなくても、実質的にどちらか識
>別できる方法でかまいません。
>
いっそ
run "cmd /C ver > con";
とかで取得するってのは?
Microsoft Windows XP [Version 5.1.2600]
Microsoft Windows [Version 6.0.6000]
なんてのが帰ってくるけど。


[ ]
RE:25241 マクロでXP/Vistaを識別したいNo.25242
さん 08/08/05 19:38
 
みなさんアドバイスありがとうございました

今回は、レジストリを見る↓でやることにして、うまくいきました。
openreg "LOCALMACHINE", "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion";
$s = getregstr("ProductName");

他の方法も、なにかのおりに使ってみたいと思います。
ありがとうございました

−−

急ぎませんが、マクロで下記情報が取れるようになると便利ですね
 OS名/バージョン
 マシン名
 ユーザ名

ではでは

[ ]