version 11 (Modified)
PLATFORM PROPERTIES (platform{; system{; processor{; language}}})
| 引数 | 型 | 説明 | |
| platform | 数値 | 2 = Mac OS、3 = Windows | |
| system | 数値 | 起動しているバージョンによって異なる | |
| processor | 数値 | プロセッサファミリー | |
| language | 数値 | 使用しているシステムによって異なる |
説明
PLATFORM PROPERTIESコマンドは、起動しているオペレーティングシステムのタイプ、バージョンやオペレーティングシステムの言語、マシンにインストールされているプロセッサに関する情報を返します。
PLATFORM PROPERTIES は、環境情報を引数platform、system、processorおよびlanguageに渡します。
・platformは使用されているオペレーティングシステムを示します。この引数は、前もって定義されている以下の定数の一つを返します。
| 定数 | タイプ | 値 |
| Mac OS | 倍長整数 | 2 |
| Windows | 倍長整数 | 3 |
・ systemに返される情報は、実行している4Dのバージョンによって異なります。
Macintoshバージョン
4DのMac OSバージョンが起動している場合、引数systemは32ビット(倍長整数) 値を返します。高レベルのワードは使用されません。低レベルのワードの構成は次のとおりです。
- 高バイトは主要なバージョン番号を含みます。
- 低バイトは2ニブル(各4ビット) で構成されます。高ニブルはメジャーアップデートバージョン番号です。低ニブルはマイナーアップデートバージョンです。その例として、システム9.0.4 は$0904のようにコード化され 、少数値2308を受け取ります。
Note: % (モジュロ) と \ (整数除算) 数値演算子またはBitwise operatorsを使用して、これらの値を抽出できます。
次のフォーミュラを使用して、Mac OSの主なバージョン番号を調べます。
PLATFORM PROPERTIES($vlPlatform;$vlSystem) $vlResult:=$vlSystem\256 `If $vlResult = 8 --> you are under Mac OS 8.x `If $vlResult = 9 --> you are under Mac OS 9.x `If $vlResult = 16 --> you are under Mac OS 10.x
Windowsバージョン
4DのWindowsバージョンが起動している場合、引数systemは32ビット(倍長整数) 値を返します。ビットとバイトは次のように構成されます。
高レベルのバイトに0が代入された場合、Windows NT、Windows 2000、Windows XPまたはWindows Vistaが起動していることを意味します。バイトに1が代入された場合、Windows 95またはWindows 98 (両方とも廃版) が起動していることを意味します。
Note: 高レベルのバイトは、倍長整数値の記号を決定します。そのため、4DでWindows NT、Windows 2000、Windows XPまたはWindows Vistaが起動していることが確かであれば、値の記号をテストするだけです。Bitwise operatorsを使用することも可能です。
低バイトはWindowsのメジャーなバージョン番号を表します。4が返されると、Windows 95、98または Windows NT 4が起動しています。5が返されると、Windows 2000またはWindows XP (両方の場合、値の記号はNT/2000が起動しているかどうかを示します) が起動しています。6が返されると、Windows Vistaが起動しています。
次の低バイトはWindowsのマイナーバージョン番号を表します。Windows 95が起動していると、 0が返されます。
Note: % (モジュロ) と \ (整数除算) 数値演算子またはBitwise operatorsを使用して、これらの値を抽出できます。
・引数processorは、マシンのマイクロプロセッサファミリを示します。2つの値が返されます。これらは定数のフォームで利用可能です。
| 定数 | タイプ | 値 |
| Intel Compatible | 倍長整数 | 586 |
| Power PC | 倍長整数 | 406 |
引数platformとprocessorを組み合わせることによって、使用しているマシンが、“MacIntel” タイプであるかどうかを確実に知ることができます(platform=Mac OSとprocessor=Intel Compatible) 。
・引数languageを使用して、データベースを実行しているシステムの現在の言語を調べます。以下は、コードとそれに対応する言語を表したリストです。これらのコードは引数に返されます。
| コード | 言語 |
| 1 | Arabic |
| 2 | Bulgarian |
| 3 | Catalan |
| 4 | Chinese |
| 5 | Czech |
| 6 | Danish |
| 7 | German |
| 8 | Greek |
| 9 | English |
| 10 | Spanish |
| 11 | Finnish |
| 12 | French |
| 13 | Hebrew |
| 14 | Hungarian |
| 15 | Icelandic |
| 16 | Italian |
| 17 | Japanese |
| 18 | Korean |
| 19 | Dutch |
| 20 | Norwegian |
| 21 | Polish |
| 22 | Portuguese |
| 24 | Romanian |
| 25 | Russian |
| 26 | Croatian |
| 26 | Serbian |
| 27 | Slovak |
| 28 | Albanian |
| 29 | Swedish |
| 30 | Thai |
| 31 | Turkish |
| 33 | Indonesian |
| 34 | Ukrainian |
| 35 | Belarusian |
| 36 | Slovenian |
| 37 | Estonian |
| 38 | Latvian |
| 39 | Lithuanian |
| 41 | Farsi |
| 42 | Vietnamese |
| 45 | Basque |
| 54 | Afrikaans |
| 56 | Faeroese |
Note: コマンドがシステムの言語を識別できない場合、値9(English) が返されます。
例題
次のプロジェクトメソッドは、使用しているOSソフトウェアを示すアラートボックスを表示します。
` SHOW OS VERSION project method
PLATFORM PROPERTIES($vlPlatform;$vlSystem;$vlMachine)
If (($vlPlatform<2) | ($vlPlatform>3))
$vsPlatformOS:=""
Else
If ($vlPlatform=Windows)
$vsPlatformOS:=""
If ($vlSystem<0)
$winMajVers:=((2^31)+$vlSystem)%256
$winMinVers:=(((2^31)+$vlSystem)\256)%256
If ($winMinVers=0)
$vsPlatformOS:="Windows 95"
Else
$vsPlatformOS:="Windows 98"
End if
Else
$winMajVers:=$vlSystem%256
$winMinVers:=($vlSystem\256)%256
Case of
: ($winMajVers=4)
$vsPlatformOS:="Windows NT"
: ($winMajVers=5)
If ($winMinVers=0)
$vsPlatformOS:="Windows 2000"
Else
$vsPlatformOS:="Windows XP"
End if
: ($winMajVers=6)
$vsPlatformOS:="Windows Vista"
End case
End if
$vsPlatformOS:=$vsPlatformOS+" version "+String($winMajVers)+"."+String($winMinVers)
Else
$vsPlatformOS:="Mac OS version "
If (($vlSystem\256) = 16)
$vsPlatformOS:=$vsPlatformOS+"10"
Else
$vsPlatformOS:=$vsPlatformOS+String($vlSystem\256)
End if
$vsPlatformOS:=$vsPlatformOS+"."+String(($vlSystem\16)%16)+(("."+String($vlSystem%16))
*Num(($vlSystem%16) # 0))
End if
End if
ALERT($vsPlatformOS)
Windowsでは、以下のようなアラートボックスが表示されます。
Macintoshでは、以下のようなアラートボックスが表示されます。
参照