PLATFORM PROPERTIES

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 11 (Modified)


PLATFORM PROPERTIES (platform{; system{; processor{; language}}})

引数説明
platform数値2 = Mac OS、3 = Windows
system数値起動しているバージョンによって異なる
processor数値プロセッサファミリー
language数値使用しているシステムによって異なる

説明

PLATFORM PROPERTIESコマンドは、起動しているオペレーティングシステムのタイプ、バージョンやオペレーティングシステムの言語、マシンにインストールされているプロセッサに関する情報を返します。

PLATFORM PROPERTIES は、環境情報を引数platformsystemprocessorおよび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

引数platformprocessorを組み合わせることによって、使用しているマシンが、“MacIntel” タイプであるかどうかを確実に知ることができます(platform=Mac OSprocessor=Intel Compatible) 。

・引数languageを使用して、データベースを実行しているシステムの現在の言語を調べます。以下は、コードとそれに対応する言語を表したリストです。これらのコードは引数に返されます。

コード言語
1Arabic
2Bulgarian
3Catalan
4Chinese
5Czech
6Danish
7German
8Greek
9English
10Spanish
11Finnish
12French
13Hebrew
14Hungarian
15Icelandic
16Italian
17Japanese
18Korean
19Dutch
20Norwegian
21Polish
22Portuguese
24Romanian
25Russian
26Croatian
26Serbian
27Slovak
28Albanian
29Swedish
30Thai
31Turkish
33Indonesian
34Ukrainian
35Belarusian
36Slovenian
37Estonian
38Latvian
39Lithuanian
41Farsi
42Vietnamese
45Basque
54Afrikaans
56Faeroese

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では、以下のようなアラートボックスが表示されます。

参照

ビットワイズ演算子.


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次