システム ツール

この関数のグループを使用すると、3ds Max が実行されているシステムに関するさまざまな情報を収集できます。

systemTools.NumberOfProcessors()   

オペレーティング システムに従って、使用可能なプロセッサの数(コア)を返します。

systemTools.GetScreenWidth [ removeUIScaling:<true> ]

デスクトップを複数のモニタに拡張した場合を含めた画面の幅を返します。

オプションの removeUIScaling パラメータは、高 DPI ディスプレイでスケールを削除するかどうかを示します。

systemTools.GetScreenHeight [ removeUIScaling:<true> ]

デスクトップを複数のモニタに拡張した場合を含めた画面の高さを返します。

オプションの removeUIScaling パラメータは、高 DPI ディスプレイでスケールを削除するかどうかを示します。

systemTools.IsWindows98or2000()

3ds Max 2017 より前のバージョンでは、オペレーティング システムが Windows98、Windows2000、Windows XP、Windows Vista、または Windows 7 の場合に True を返しました。

systemTools.IsWindows9x()

3ds Max 2017 より前のバージョンでは、OS が Windows 9x 系の場合に True を返しました。

systemTools.GetOSVersion()

3 つの部分(メジャー バージョン、マイナー バージョン、ビルド番号を表す)からなる配列として OS バージョンを返します。 この関数は、3ds Max でサポートされるすべてのバージョンの Windows で機能します。

3ds Max 2019.1 Update 以降で使用可能です。

<boolean> systemTools.IsDebugging()

デバッガで実行されている場合は True を返します。

<string> systemTools.GetBuildNumber()

「#.#.#.#」形式で文字列を返します。ここで、数字はメジャー バージョン、更新バージョン、修正プログラムの番号、およびビルド番号です。これは、[ファイル プロパティ](File Properties)の 3dsmax.exe と、[3ds Max 情報](About 3ds Max)ダイアログ ボックスの上部に製品バージョンとして表示される文字列と同じです。

3ds Max 2018 以降で使用可能です。

systemTools.DebugPrint <string>

指定した文字列を Visual Studio のデバッグ出力ウィンドウに出力します。

3ds Max 2011 以降 で使用可能です。

systemTools.sceneIODebugEnabled <boolean>

シーンの IO デバッグを有効にするかどうかを指定します。true の場合は、シーン ロード時の情報がログ システムに送信されます。

3ds Max 2018 以降で使用可能です。

<boolean> systemTools.isDebugBuild

これが 3ds Max のデバッグ ビルドである場合は true、それ以外の場合は false を返します。

3ds Max 2019.2 Update 以降で使用可能です

systemTools.getEnvVariable <string>

指定された環境変数の内容を返します。指定された環境変数が存在しない場合は、undefined 値を返します。

3ds Max 2008 以降で使用可能です。従来、Avguard 機能拡張として提供されていた機能です。

    systemTools.getEnvVariable "PATH"
    "C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Common Files\Autodesk Shared\;C:\Program Files\backburner 2\;"
<boolean>systemTools.setEnvVariable <string> { <string> | undefined }

指定された環境変数の内容を設定します。

設定できた場合は True、できなかった場合は False を返します。

2 番目の引数の値が undefined である場合、環境変数は削除されます。

3ds Max 2008 以降で使用可能です。従来、Avguard 機能拡張として提供されていた機能です。

systemTools.getEnvVariables

3ds Max 2022.1 Update の新機能:

現在定義されているすべてのシステム環境変数のリストを、「ENVAR=setting」の形式による文字列の配列形式で返します。

systemTools.GetRegistryKeyBase()

ベース製品のレジストリ キーを「SOFTWARE\\\". アプリケーションは、レジストリ設定を格納するための基準としてこのキーを使用します。

3ds Max 2018 以降で使用可能です。

たとえば、次のように使用されます。

systemTools.GetRegistryKeyBase()
--> "SOFTWARE\Autodesk\3dsMax\21.0"
<int>systemTools.getmaxstdio()

stdio レベルで(つまり fopen を通して)同時に開くことのできるファイルの数を返します。

3ds Max 2014 以降で使用可能です。

<int>systemTools.setmaxstdio <int newmax>

stdio レベルで(つまり fopen を通して)同時に開くことのできるファイルの最大数を設定します。

newmax 引数の有効な範囲は、512 ~ 2048です。

成功した場合は、新しい最大値を返します。

現在、値を大きくすることのみが許可されています。

最大数を低減しようとした場合は -1 を返します。

これは、たとえばより多くのポイント キャッシュ ファイルを並行して同時に読み込みたい場合などに使用することができます。

3ds Max 2014 以降で使用可能です。

<int>systemTools.getSystemMetrics <int>

win32 GetSystemMetrics() 関数を呼び出し、指定した値を渡します。戻り値は GetSystemMetrics() からの戻り値です。パラメータ値については、Win32 ドキュメントで getSystemMetrics を参照してください。 3ds Max 2017 以降で使用可能です。

    -- get client window width
    systemTools.getSystemMetrics 16
    -->1920
<boolean>systemTools.isAeroEnabled()

Windows Aero のテーマが有効な場合は true を返します。Windows 7 で Windows クラシック テーマを使用している場合は false を返します。3ds Max 2017 以降で使用可能です。

<boolean>systemTools.IsGpuPresent()

現在のシステム上に少なくとも 1 つの GPU が存在する場合は、true を返します。それ以外の場合は、false を返します。

3ds Max 2018 以降で使用可能です。

<array>systemTools.EnumDisplayDevices [ removeUIScaling:<true> ]

配列からなる配列を返します。外部配列内の各要素は特定のディスプレイ デバイスに対応します。各ディスプレイ デバイスの配列には、デバイス ID、デバイス名、デバイスの文字列、デバイスの状態フラグ、およびデバイス キーが含まれています。デバイスがデスクトップにアタッチされている場合、その配列にはデバイスの左上の X および Y ピクセル座標、その幅と高さが含まれています。ピクセル座標の基数は 0 です。 3ds Max 2017 以降で使用可能です。

ディスプレイ デバイスの詳細については、EnumDisplayDevices の MSDN ドキュメントを参照してください。

    devices= systemTools.EnumDisplayDevices removeUIScaling:true
         for d in devices do print d #nomap
         #("\\.\DISPLAY1", "NVIDIA Quadro FX 4800", 5, "PCI\VEN_10DE&DEV_05FE&SUBSYS_059410DE&REV_A1", "\Registry\Machine\System\CurrentControlSet\Control\Video{8A328D59-1288-485D-821D-7DA906E41335}\0000", 0, 0, 1920, 1080)
         #("\\.\DISPLAY2", "NVIDIA Quadro FX 4800", 1, "PCI\VEN_10DE&DEV_05FE&SUBSYS_059410DE&REV_A1", "\Registry\Machine\System\CurrentControlSet\Control\Video{8A328D59-1288-485D-821D-7DA906E41335}\0001", 1920, 0, 1920, 1080)
         #("\\.\DISPLAYV1", "RDPDD Chained DD", 2097160, "", "\Registry\Machine\System\CurrentControlSet\Control\Video{DEB039CC-B704-4F53-B43E-9DD4432FA2E9}\0000")
         #("\\.\DISPLAYV2", "RDP Encoder Mirror Driver", 2097160, "", "\Registry\Machine\System\CurrentControlSet\Control\Video{42cf9257-1d96-4c9d-87f3-0d8e74595f78}\0000")
         #("\\.\DISPLAYV3", "RDP Reflector Display Driver", 2097160, "", "\Registry\Machine\System\CurrentControlSet\Control\Video{b043b95c-5670-4f10-b934-8ed0c8eb59a8}\0000")
         OK
<boolean> GenerateMiniDumpAndContinue sendDump:<false>

3ds Max 2018.2 Update 以降で使用可能: ミニダンプ ファイルを生成して、引き続き実行します。 sendDump が true の場合は、ミニダンプ ファイルがオートデスクに送信されます。

注: このメソッド、特に sendDump 引数は、ミニダンプ生成のテストが主な目的であるため、一般には使用しないでください。

生成されたミニダンプ ファイルは C:\Users\\AppData\Local\temp\3dsmax_minidump.dmp に配置されます。

大きなミニダンプ ファイルが生成された場合、このファイルは C:\Users\\AppData\Local\temp\3dsmax_minidump_big.dmp に配置されます。

関連項目: 『3ds Max 開発者用ガイド』の「3ds Max で生成されたミニダンプ ファイルを使用する」
<boolean> SetMiniDumpContents {#default | #basic | #medium | #full | <int>}

3ds Max 2018.2 Update 以降で使用可能: 生成されたミニダンプの内容を設定します。 #default フラグと #medium フラグは同等です。

各レベルのミニダンプ フラグは、次のとおりです(ミニダンプ フラグ値の説明については、次のリンクを参照)。

<int> が指定されている場合、ビット セットはミニダンプ フラグ値に対応します。

関連項目: 『3ds Max 開発者用ガイド』の「3ds Max で生成されたミニダンプ ファイルを使用する」
systemTools.SetBigMiniDumpContents {#default | #basic | #medium | #full | #off | <int>

3ds Max 2018.2 Update 以降で使用可能: 生成された大きなミニダンプの内容を設定します。 通常は #off に設定されています。

注: #full に設定されている場合、大きなミニダンプ ファイルが著しく巨大になって、2 GB を超えることがあります。使用の際は注意してください。
関連項目: 『3ds Max 開発者用ガイド』の「3ds Max で生成されたミニダンプ ファイルを使用する」

内部でのみ使用されます:

<boolean>systemTools.PB2_AllNoRefSafePointersTestingDisable <boolean>disable

内部でのみ使用されます。

<boolean>systemTools.PB2_AllNoRefSafePointersTestingDisables()

内部でのみ使用されます。

<boolean>systemTools.allocateMemory()

内部でのみ使用されます。

<boolean>systemTools.releaseMemory()

内部でのみ使用されます。