システム情報
sysinfo 構造体は、システム ディレクトリ、システム名、ユーザ、デスクトップのサイズおよびカラー深度などのシステム情報や、CPU の数やメモリ使用率などのハードウェア関連データなどに対するアクセスに関連するいくつかの変数およびメソッドを提供します。
システム ディレクトリ
Windows ディレクトリを <string> 値として含んでいる読み込み専用変数。
Windows システム ディレクトリを <string> 値として含んでいる読み込み専用変数。
Temp ディレクトリを <string> 値として含んでいる読み込み専用変数。
現在のディレクトリを <string> 値として 取得/設定する変数。
fileIn() 呼び出しなど、明示的なパスが指定されていない場合は、MAXScript は現在のディレクトリでファイルを検索します。そのような呼び出しで相対パスが指定されている場合は、 sysInfo.currentdir に相対的なパスが解決されます。
この変数は読み取りおよび書き込みはできませんが、相対パスを使用したり明示的なパスを指定したりすることなく、いつでも効率的に現在のディレクトリを指定することができます。
例:
|
sysinfo.currentdir
-->"C:\Documents and Settings\username\My Documents\3dsmax\Scripts"
sysinfo.currentdir = "C:\\Temp"
-->"C:\Temp"
fileIn "test.ms" --this willloadthe scriptfromC:\Temp
-->OK
|
ユーザ名とコンピュータ名:
ユーザ名を <string> 値として含んでいる読み込み専用変数。
コンピュータ名を <string> 値として含んでいる読み込み専用変数。
例:
|
currentUser = sysinfo.username + "@" + sysinfo.computername
"SonGoku@FlyingNimbus"
|
CPU およびデスクトップ情報:
CPU の数を <integer> 値として含んでいる読み込み専用変数。
読み込み専用 のシステム グローバル変数。ピクセル単位の Windows デスクトップ サイズを Point2 値として返します。2 台のモニタにまたがってデスクトップを表示するように設定したデュアル
モニタ システムでは、返されるデスクトップ サイズには 2 番目のモニタも含まれることに注意してください。
sysInfo.DesktopSizeUnscaled
3ds Max 2017 の 新機能 : スケールされていない Windows デスクトップ サイズ(ピクセル単位)を Point2 値として含む読み取り専用のシステム グローバル変数です。2 台のモニタにまたがってデスクトップを表示するように設定したデュアル
モニタ システムでは、返されるデスクトップ サイズには 2 番目のモニタも含まれることに注意してください。
読み込み専用のシステム グローバル変数。ビット/ピクセル単位の Windows デスクトップのカラー深度を整数値として返します。たとえば、グラフィックス ドライバが 32 ビット
True Color に設定されている場合、返される値は 32 になります。
例:
|
format "Your system has % CPUs (Cores)\n" sysinfo.cpucount
"Your system has 8 CPUs (Cores)"
format "Desktop: Scaled % / Unscaled % @ % bits per pixel\n" sysinfo.desktopSize sysinfo.DesktopSizeUnscaled sysinfo.desktopBPP
"Desktop: Scaled [1920,1080] / Unscaled [1920,1080] @ 32 bits per pixel"
|
3ds Max プロセスの優先順位とアフィニティ:
3ds Max の処理優先順位を <name> 値で取得/設定します。有効な優先順位の name 値は、#high、#normal、および #low です。
例:
|
sysinfo.MAXPriority
#normal
sysinfo.MAXPriority = #low
#low
|
プロセスのアフィニティ(プロセスが使用できるプロセッサ)をポインタ値として取得/設定します。ポインタ値の各ビットが 1 つのプロセッサに対応しています。ビットが設定されていれば、プロセスはそのプロセッサを使用できます。
3ds Max 2008 以降 で使用可能です。従来、Avguard 機能拡張として提供されていた機能です。
システム アフィニティ(システムに存在するプロセッサ)をポインタとして含んでいる読み込み専用のプロパティです。ポインタの各ビットが 1 つのプロセッサに対応しています。ビットが設定されていれば、プロセッサは存在します。
3ds Max 2008 以降 で使用可能です。従来、Avguard 機能拡張として提供されていた機能です。
例:
|
以下の例は、既存のプロセッサまたは既存の各プロセッサ (コア) 用に設定されたビットが含まれた bitarray を取得する方法を示したものです。この例では、システムには
4 基のコアが搭載されています。
|
--getting system affinity as a Pointer:
sysinfo.systemAffinity
-->15P
--getting system affinity as an array:
(for i = 1 to 32 where bit.get sysinfo.systemAffinity i collect i)
-->#(1,2,3,4)
--getting system affinity as a bitarray:
(for i = 1 to 32 where bit.get sysinfo.systemAffinity i collect i)as bitarray
-->#{1..4}
|
システム言語:
sysinfo.getLanguage [user:<bool>]
このメソッドは、Windows OS 言語を 3 要素の配列として返します。
最初の 2 つの要素は整数値で、プライマリ言語およびサブ言語 ID に対応しています。これらの ID に関する説明は、Windows SDK ヘルプ ファイルを参照してください。
3 番目の要素は現在の言語について記述したスクリプトです。3ds Max 2010 以降では、言語が取得できない場合は、3 番目の要素にはエラー文字列が含まれます。
オプションのキーワード user : が true (既定値)の場合、現在のユーザの言語が返されます。 false の場合、システムの言語が返されます。
3ds Max 6 以降で使用可能です。
このメソッドは 3ds Max 2010 以降で使用可能です。3ds Max 言語を 3 要素の配列として返します。
最初の 2 つの要素は整数値で、プライマリ言語およびサブ言語 ID に対応しています。これらの ID に関する説明は、Windows SDK ヘルプ ファイルを参照してください。
3 番目の要素は、現在の 3ds Max 言語について記述したスクリプトです。言語が取得できない場合は、3 番目の要素にはエラー文字列が含まれます。
メモリ使用量情報:
sysinfo.getSystemMemoryInfo()
システム メモリ ステータス データを含む 7 つの要素配列を返すメソッドです。各配列要素には、次のデータが含まれます。
-
メモリ使用率
-
物理メモリのバイト数
-
空き物理メモリのバイト数
-
ページング ファイルのバイト数
-
ページング ファイルの使用可能バイト数
-
アドレス スペースのユーザ バイト数
-
空きユーザ バイト数
例:
|
(
r=sysinfo.getSystemMemoryInfo()
for i=2 to 7 do r[i] /= (1024*1024.)
format "percent of memory in use:\t%\n" r[1]
format "total physical memory:\t% MB\n" r[2]
format "free physical memory:\t% MB\n" r[3]
format "used physical memory:\t% MB\n" (r[2]-r[3])
format "total paging file size:\t% MB\n" r[4]
format "free paging file size:\t% MB\n" r[5]
format "used paging file size:\t% MB\n" (r[4]-r[5])
format "total virtual memory:\t% MB\n" r[6]
format "free virtual memory:\t\t% MB\n" r[7]
format "used virtual memory:\t\t% MB\n" (r[6]-r[7])
ok
)
|
出力
|
percent of memory in use: 0
total physical memory: 255.359 MB
free physical memory: 16.5156 MB
used physical memory: 238.844 MB
total paging file size: 1016.3 MB
free paging file size: 757.898 MB
used paging file size: 258.398 MB
total virtual memory: 2047.88 MB
free virtual memory: 1846.55 MB
used virtual memory: 201.328 MB
OK
|
sysinfo.getMAXMemoryInfo()
3ds Max メモリ ステータス データを含む 9 つの要素配列を返します。各配列要素には、次のデータが含まれます。
-
ページ違反の数
-
ピーク時のワーキング セットのサイズ
-
ワーキング セットのサイズ
-
ピーク時の割り当てページ プール使用量
-
割り当てページ プール使用量
-
ピーク時の割り当て非ページ プール使用量
-
割り当て非ページ プール使用量
-
ページファイル使用量
-
ピーク時のページファイル使用量
例:
|
(
r=sysinfo.getMAXMemoryInfo()
for i=2 to 9 do r[i] /= (1024*1024.)
format "Page Fault Count:\t\t\t%\n" r[1]
format "Peak Working Set Size:\t\t% MB\n" r[2]
format "Working Set Size:\t\t\t% MB\n" r[3]
format "Quota Peak Paged Pool Usage:\t% MB\n" r[4]
format "Quota Paged Pool Usage:\t\t% MB\n" r[5]
format "Quota Peak NonPaged Pool Usage:\t% MB\n" r[6]
format "Quota NonPaged Pool Usage:\t\t% MB\n" r[7]
format "Pagefile Usage:\t\t\t% MB\n" r[8]
format "Peak Pagefile Usage:\t\t\t% MB\n" r[9]
ok
)
|
出力
|
Page Fault Count: 32948
Peak Working Set Size: 70.3594 MB
Working Set Size: 70.3594 MB
Quota Peak Paged Pool Usage: 0.166186 MB
Quota Paged Pool Usage: 0.161236 MB
Quota Peak NonPaged Pool Usage: 0.0213509 MB
Quota NonPaged Pool Usage: 0.0213509 MB
Pagefile Usage: 58.9023 MB
Peak Pagefile Usage: 58.9219 MB
|