4D v16.3

PLATFORM PROPERTIES

ホーム

 
4D v16.3
PLATFORM PROPERTIES

PLATFORM PROPERTIES 


 

PLATFORM PROPERTIES ( platform {; system {; processor {; language}}} )  
引数   説明
platform  倍長整数 in 2 = Mac OS、3 = Windows
system  倍長整数 in 起動しているバージョンによって異なる
processor  倍長整数 in プロセッサファミリー
language  倍長整数 in 使用しているシステムによって異なる

説明   

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

PLATFORM PROPERTIESは、環境情報を引数platformsystemprocessorおよびlanguage引数に渡します。

platformは使用されているオペレーティングシステムを示します。この引数は、以下の既定の定数の一つを返します:

定数
Mac OS 倍長整数 2
Windows 倍長整数 3
systemに返される情報は、実行している4Dのバージョンによって異なります。

4DのMac OSバージョンが起動している場合、引数systemは32ビット(倍長整数) 値を返します。高レベルのワードは使用されません。低レベルのワードの構成は次のとおりです。

- 高バイトは主要なバージョン番号を含みます。
- 低バイトは2ニブル(各4ビット) で構成されます。高ニブルはメジャーアップデートバージョン番号です。低ニブルはマイナーアップデートバージョンです。その例として、システム9.0.4 は$0904のようにコード化され 、少数値2308を受け取ります。

Note: % (モジュロ) と \ (整数除算) 数値演算子 またはビットワイズ演算子を使用して、これらの値を抽出できます。

次のフォーミュラを使用して、Mac OSの主なバージョン番号を調べます。

 PLATFORM PROPERTIES($vlPlatform;$vlSystem)
 $vlResult:=$vlSystem\256
  //If $vlResult = 16 --> Mac OS 10.x 環境下を使用中
  //If $vlResult # 16 --> 別のMac OS バージョンを使用中

4DのWindowsバージョンが起動している場合、引数systemは32ビット(倍長整数) 値を返します。ビットとバイトは次のように構成されます。

高レベルのバイトに0が代入された場合、Windows NT、Windows 2000、Windows XPまたはWindows Vistaが起動していることを意味します。バイトに1が代入された場合、お使いのWindowsのバージョンが古すぎる事を意味します。

Note: 高レベルのバイトは、倍長整数値の記号を決定します。そのため、4Dでは、system引数に返された値をチェックするだけで十分です。返された値が負の値であった場合、お使いのWindowsのバージョンは廃止予定であることを意味しています。また、ビットワイズ演算子を使用する事も可能です。

低バイトはWindowsのメジャーなバージョン番号を表します:

  • 4が返された場合、Windows NT 4が起動しています。5が返された場合、Windows 2000、Windows Server 2003またはWindows XPが起動しています(値の記号はNT/2000が起動しているかどうかを示します)。
  • 6が返されると、Windows Vista、Windows 7、またはWindows 8.1が起動しています。
  • 10が返されると、Windows 10が起動しています。この場合、system引数もまた10である点に注意してください。

次の低バイトはWindowsのマイナーバージョン番号を表します。Windows 10が起動していると、 3が返されます。

Note: % (モジュロ) と \ (整数除算) 数値演算子またはビットワイズ演算子を使用して、これらの値を抽出できます。

引数processorは、マシンのマイクロプロセッサファミリを示します。2つの値が返されます。これらは定数のフォームで利用可能です。

定数
Intel compatible 倍長整数 586
Power PC 倍長整数 406

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

引数languageを使用して、データベースを実行しているシステムの現在の言語を調べます。以下は、コードとそれに対応する言語を表したリストです。これらのコードは引数に返されます。
CodeLanguage
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 プロジェクトメソッド
 
 PLATFORM PROPERTIES($vlPlatform;$vlSystem;$vlMachine)
 If(($vlPlatform<2)|($vlPlatform>3))
    $vsPlatformOS:=""
 Else
    If($vlPlatform=Windows)
       $vsPlatformOS:=""
       If($vlSystem<0)
          $vsPlatformOS:="Windows version too old"
       Else
          $winMajVers:=$vlSystem%256
          $winMinVers:=($vlSystem\256)%256
          Case of
             :($winMajVers=4)
                $vsPlatformOS:="Windows™ NT"
             :($winMajVers=5)
                Case of
                   :($winMinVers=0)
                      $vsPlatformOS:="Windows™ 2000"
                   :($winMinVers=1)
                      $vsPlatformOS:="Windows™ XP"
                   :($winMinVers=2)
                      $vsPlatformOS:="Windows™ 2003"
                   Else
                      $vsPlatformOS:="Windows (undetermined version)"
                End case
             :($winMajVers=6)
                Case of
                   :($winMinVers=0)
                      $vsPlatformOS:="Windows™ Vista"
                   :($winMinVers=1)
                      $vsPlatformOS:="Windows™ Seven"
                   :($winMinVers=3)
                      $vsPlatformOS:="Windows™ 8.1"
                   Else
                      $vsPlatformOS:="Windows (undetermined version)"
                End case
             :($winMajVers=10) //$vlSystemもまた10
                $vsPlatformOS:="Windows™ 10"
          End case
       End if
       $vsPlatformOS:=$vsPlatformOS+" version "+String($winMajVers)+"."+String($winMinVers)
    Else
       $vsPlatformOS:="OS X 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では以下のような警告ボックスが表示されます:

Mac OSでは以下のような警告ボックスが表示されます:



参照 

ビットワイズ演算子

 
プロパティ 

プロダクト: 4D
テーマ: システム環境
番号: 365

This command can be run in preemptive processesMac OS用です。Windows用です。

 
履歴 

変更: 4D v11 SQL

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)