Intel ベースの Mac を検出する方法
日付 | 2007/05/17 |
---|---|
ID | 46338 (英語原文参照) |
バージョン | 2004.6r2 |
プラットフォーム | Mac OS X |
4Dの Gestalt 関数は、Intel ベースの Mac を検出できません。例えば、Apple 社のドキュメントに基づいて次のコードを記述したとします。
$LongInt_errorCode := Gestalt ("sysa"; $LongInt_returnValue)
このコードの戻り値は、Intel ベースの Mac では 10、PowerPC では 2 になるはずです。しかし実際には、動作マシンに関係なく 2 が返ります。この問題を回避するには、Applescript の system attribute コマンドに sysa を渡して戻り値を得てください。4Dの LAUNCH EXTERNAL PROCESS コマンドを使って Applescript を利用するコードは次のようになります。
C_TEXT($Out)
C_TEXT($In)
LAUNCH EXTERNAL PROCESS("osascript -e 'system attribute \"sysa\" '";$In;$Out)
この結果、テキスト変数 $Out に、Intel Mac の時には 10 が、PpowerPC の時には 2 が戻り値として返ります。LAUNCH EXTERNAL PROCESS コマンドおよび Gestalt 関数の詳細は、ランゲージリファレンスで確認してください。
Gestalt:
http://www.4d.com/docs/CMJ/CMJ00488.HTM
LAUNCH EXTERNAL PROCESS:
http://www.4d.com/docs/CMJ/CMJ00811.HTM
Apple Gestalt Manager Reference:
http://developer.apple.com/documentation/Carbon/Reference/Gestalt_Manager/index.html