<<< 前へ   TOP   次へ>>>


システム・OS情報


システム変数

$_DATETIME
参照した時点での日時が格納されています。
形式は YYYY/MM/DD WE HH:MM:SS となっています。WEは曜日のことで、日月火水木金土の何れかです。
#_DENYSHUTDOWN
ShutdownまたはLogoff時の終了要求を拒否するかどうかの設定値を返します。
0の時は終了要求を受け入れます。このときSTLを実行中ならば強制的にSTLの実行が中断されます。
0以外の時は終了要求を拒否します。
この設定はSetDenyShutdown手続きで変更することができます。
!!!注意!!!
SASFのコマンドである Logoff, Shutdown, RebootSystem, PowerOff, ShutdownWithPrmを実行すると、#_DENYSHUTDOWNの値に寄らず、SASFは終了します
#_DENYSUSPEND
OSからのサスペンド要求を拒否するかどうかの設定値を返します。
0の時はサスペンド要求を受け入れます。このときSTLを実行中ならば強制的にSTLの実行が中断されます。
0以外の時はサスペンド要求を拒否します。
この設定はSetDenySuspend手続きで変更することができます。
#_OSBUILD
OSのBUILDが入ります。
#_OSMAJORVER
OSのメジャーバージョンが入ります。
#_OSMINORVER
OSのマイナーバージョンが入ります。
#_OSPLATFORM
OSの種類が入ります。現状では2(NT系)しか返らないはずです。
#_SPMAJORVER
Service Packのメジャーバージョンが入ります。
#_SPMINORVER
Service Packのマイナーバージョンが入ります。
#_TICKCOUNT
OS起動時からの経過時間がミリ秒単位で入ります。

システム変数配列

name
説明文

システム文字列

$_OSADDINFO
GetVersionEx APIで取得する情報の内、szCSDVersionが入っています。
$_USERNAME
現在のプロセスのオーナーの名前が返ります。LogonUserで偽装している場合は、偽装しているユーザーの名前が返ります。

システム文字列配列

name
説明文

システム手続き

ClrEnv(文字列)
文字列で指定した環境変数を削除します。成功した場合は#_RESULTに0が入ります。失敗した場合は#_RESULTに0以外が入ります。GetSysErrMsgで詳細を取得できます。
Format()
FDD/MOのフォーマットダイアログを開きます。
GetCurrentDPI(ユーザー変数)
現在実行中のSASFが存在するモニタのDPIを返します。
SASFが複数のモニタにまたがる場合、一番面積の多いモニタになります。
又、モニタが存在しない座標にある場合は、一番近いモニタの物になります。
GetCurrentScreenRect(ユーザー変数1,ユーザー変数2,ユーザー変数3,ユーザー変数4)
現在実行中のSASFが存在するモニタの座標を返します。ユーザー変数1はLeft、ユーザー変数2はTop、ユーザー変数3はRight、ユーザー変数4はBottomになります。
SASFが複数のモニタにまたがる場合、一番面積の多いモニタになります。
又、モニタが存在しない座標にある場合は、一番近いモニタの物になります。
GetCurrentWorkAreaRect(ユーザー変数1,ユーザー変数2,ユーザー変数3,ユーザー変数4)
現在実行中のSASFが存在するモニタの座標を、タスクバーの領域を除外して返します。ユーザー変数1はLeft、ユーザー変数2はTop、ユーザー変数3はRight、ユーザー変数4はBottomになります。
SASFが複数のモニタにまたがる場合、一番面積の多いモニタになります。
又、モニタが存在しない座標にある場合は、一番近いモニタの物になります。
なお、Windows 7までの場合、#_RESULTに0以外が入っている場合は取得に失敗しており、変数にはGetCurrentScreenRectと同様の値が格納されています。
GetElevationType(ユーザー変数)
現在実行中のSASFのElevationTypeを返します。成功した場合には#_RESULTに0が入ります。失敗した場合は0以外になります。GetSysErrMsgで詳細を取得できます。
この手続きはVISTA以降で有効です。Windows 2000、XPでは常に失敗します。
UACが有効な場合、返却値の意味は以下の通りです。
意味
default一般ユーザーで実行
fullAdministrator権限で実行
limitedAdministratorだが制限付きで実行
GetEnv(ユーザー文字列,文字列)
文字列で指定された環境変数の内容をユーザー文字列に代入します。
取得に成功した場合、#_RESULTに1が入ります。内容の文字数の長さ制限はver 3.21より無くなりました。(ver 3.20までは制限が最大2047文字まででした)。
環境変数が見つからない場合、ユーザー文字列には空文字列が、#_RESULTには0が入ります。
GetExpandEnv(ユーザー文字列,文字列)
文字列で指定された環境変数の内容をユーザー文字列に代入します。GetEnvと違い、文字列の中に%ENV%の様に環境変数が埋め込まれていた場合、それも展開して返します。
内容の文字数の長さはver3.21より制限が無くなりました。(ver 3.20まではは最大65536文字まででした。)
成功した場合は#_RESULTに0が入ります(GetEnvとはエラーの返し方が逆なことに注意してください)。失敗した場合は#_RESULTに0以外が帰ります。GetSysErrMsgで詳細を取得できます。
GetIniDataInt(ユーザー変数,文字列1,文字列2,文字列3,数字)
INIファイルからデータを取得します。
文字列1にはファイル名を指定します。
文字列2にはセクション名を指定します。
文字列3には項目名を指定します。
数字には、指定された項目がなかった場合にユーザー変数に格納される値を指定します。
ユーザー変数にその項目の値が格納されます。
!!!注意!!!
この手続きは互換性のためにShift_JISで読み込みます。特定のコードページで読み込む場合はGetIniDataIntWを使用して下さい。
GetIniDataIntW(ユーザー変数,文字列1,文字列2,文字列3,数字1,数字2)
INIファイルからデータを取得します。
文字列1にはファイル名を指定します。
文字列2にはセクション名を指定します。
文字列3には項目名を指定します。
数字1には、指定された項目がなかった場合にユーザー変数に格納される値を指定します。
数字2にはINIファイルのコードページを指定します。
ユーザー変数にその項目の値が格納されます。
GetIniDataStr(ユーザー文字列,文字列1,文字列2,文字列3,文字列4)
INIファイルからデータを取得します。
文字列1にはファイル名を指定します。
文字列2にはセクション名を指定します。
文字列3には項目名を指定します。
文字列4には、指定された項目がなかった場合にユーザー文字列に格納される値を指定します。
ユーザー文字列にその項目の値が格納されます。
!!!注意!!!
この手続きは互換性のためにShift_JISで読み込みます。特定のコードページで読み込む場合はGetIniDataStrWを使用して下さい。
GetIniDataStrW(ユーザー文字列,文字列1,文字列2,文字列3,文字列4,数字)
INIファイルから文字列を取得します。
文字列1にはファイル名を指定します。
文字列2にはセクション名を指定します。
文字列3には項目名を指定します。
文字列4には、指定された項目がなかった場合にユーザー文字列に格納される値を指定します。
数字にはINIファイルのコードページを指定します。
ユーザー文字列にその項目の値が格納されます。
GetMyComputerName(ユーザー文字列)
SASFを動かしているコンピュータの名前を取得します。
正常終了した場合は#_RESULTに0が入ります。
0以外はエラーです。GetSysErrMsgで詳細を取得できます。
GetProcessList(ユーザー文字列配列1、ユーザー文字列配列2、ユーザー文字列配列3、ユーザー文字列配列4、ユーザー変数配列)
現在起動中のプロセスの一覧を取得します。個数は#_RESULTに格納されます。
ユーザー文字列配列1にはモジュール名、ユーザー文字列配列2にはフルパス、ユーザー文字列配列3にはユーザー名、ユーザー文字列配列4にはドメイン、ユーザー変数配列にはバイナリが32bitか64bitかを示す値が格納されます。
実行時の権限によっては、情報が取得できない場合があります。その場合、対応する情報は空文字列、又は0が格納されています。
ユーザー変数配列には、バイナリが32bitの場合は32、64bitの場合は64が格納されています。
注意
各配列を引数に渡す時は[]を付けないでください。
例)
var $names[1],$paths[1],$owners[1],$domains[1],#bits[1];
GetProcessList($names,$paths,$owners,$domains,#bits);
GetSysErrMsg(ユーザー文字列,数字)
数字に対応したエラーメッセージをユーザー文字列に格納します。
手続きの説明で、GetSysErrMsgで詳細が取得できる、とあった場合、GetSysErrMsg($msg,#_RESULT)で$msgに説明が取得できます。
GetSystemMetrics(ユーザー変数,数字)
WindowsのAPIである GetSystemMetrics関数を呼び出します。
数字には取得したい情報を設定します。以下に主要な値を上げておきます。詳細はWindows.hとかSDKのヘルプを参照してください。
数字意味
0画面全体の幅
1画面全体の高さ
4タイトルバーの高さ
15メニューの高さ
ユーザー変数にその情報が格納されます。
HybridShutdown()
Windows 8以降でのみ有効です。
Hybrid Bootが有効になるようにShutdownします。SHUTDOWN特権を持っている必要が有ります。
成功した場合は以後のSTLは無視され、SASFは終了します。
失敗した場合は、STLの実行は継続されます。
LockWorkStation()
「ワークステーションのロック」を行います。
Logoff()
ログオフします。
成功した場合は以後のSTLは無視され、SASFは終了します。
失敗した場合は、STLの実行は継続されます。
LogonUser(文字列1,文字列2,文字列3)
現在Logonしているユーザー以外のユーザーとしてLogonします。
RevertToSelfを実行するまではそのユーザーとしての権限になります。
当然ですが、ユーザーが変更されたのは「SASF」だけです。また、変更中のSASFで起動されたプログラムも、「変更されたユーザー」として起動されます。
文字列1はログオンしたいユーザーの名前です。
文字列2はログオンするドメイン名を指定します。ドメインに参加していない場合は '.' を指定することでローカルマシンのアカウントデータを参照するようになります。
文字列3は文字列1で指定したユーザーのパスワードを指定します。
!!!注意!!!
LogonTypeはLOGON32_LOGON_INTERACTIVE、LogonProviderはLOGON32_PROVIDER_DEFAULTを指定しています。
Poweroff()
シャットダウン後、電源をオフします。ただし、OSとハードの双方が電源切断機能を有している必要が有ります。SHUTDOWN特権を持っている必要が有ります。
成功した場合は以後のSTLは無視され、SASFは終了します。
失敗した場合は、STLの実行は継続されます。
RebootSystem()
シャットダウン後、システムを再起動します。SHUTDOWN特権を持っている必要が有ります。
成功した場合は以後のSTLはは無視され、SASFは終了します。
失敗した場合は、STLの実行は継続されます。
RevertToSelf()
LogonUserで変更したユーザーをLogoffします。
SetDenyShutdown(数字)
ShutdownやLogoff時の終了要求に対して拒否するかどうかを設定します。
0を指定すると要求を受け入れるようになります。その場合、STL実行中に終了要求がくるとSTLの実行を強制的に中断します。
0以外を指定すると要求を拒否します。
!!!注意!!!
SASFのコマンドである Logoff, Shutdown, RebootSystem, PowerOff, ShutdownWithPrm, HybridShutdownを実行すると、#_DENYSHUTDOWNの値に寄らず、SASFは終了します
SetDenySuspend(数字)
OSからのサスペンド要求に対して拒否するかどうかを設定します。
0を指定すると要求を受け入れるようになります。その場合、STL実行中にサスペンド要求がくるとSTLの実行を強制的に中断します。
0以外を指定すると要求を拒否します。
SetEnv(文字列1,文字列2)
文字列1で指定した環境変数に文字列2で指定した文字列を設定します。成功した場合は#_RESULTに0が入ります。失敗した場合は#_RESULTに0以外が入ります。GetSysErrMsgで詳細を取得できます。
SetIniDataInt(文字列1,文字列2,文字列3,数字)
INIファイルにデータを書込みます。
文字列1にはファイル名を指定します。
文字列2にはセクション名を指定します。
文字列3には項目名を指定します。
数字には書込む値を指定します。
!!!注意!!!
この手続きは互換性のためにShift_JISで書き込みます。特定のコードページで書き込む場合はSetIniDataIntWを使用して下さい。
SetIniDataIntW(文字列1,文字列2,文字列3,数字1,数字2)
INIファイルに数値を書き込みます。
文字列1にはファイル名を指定します。
文字列2にはセクション名を指定します。
文字列3には項目名を指定します。
数字1には書き込む数値を指定します。
数字2にはINIファイルのコードページを指定します。
SetIniDataStr(文字列1,文字列2,文字列3,文字列4)
INIファイルにデータを書込みます。
文字列1にはファイル名を指定します。
文字列2にはセクション名を指定します。
文字列3には項目名を指定します。
文字列4には書込む文字列を指定します。
!!!注意!!!
この手続きは互換性のためにShift_JISで書き込み。特定のコードページで書き込む場合はSetIniDataStrWを使用して下さい。
SetIniDataStrW(文字列1,文字列2,文字列3,文字列4,数字)
INIファイルに文字列を書き込みます。
文字列1にはファイル名を指定します。
文字列2にはセクション名を指定します。
文字列3には項目名を指定します。
文字列4には格納するデータを指定します。
数字にはINIファイルのコードページを指定します。
Shutdown()
シャットダウンします。SHUTDOWN特権を持っている必要が有ります。
成功した場合は以後のSTLは無視され、SASFは終了します。
失敗した場合は、STLの実行は継続されます。
ShutdownWithPrm(数字1,数字2)
Logoff~Rebootをダイアログ無しで実行する手続きです。
数字1はオペレーションを指定します。
数字1オペレーション
1Logoff
2Shutdown
3Poweroff
4Reboot
5HybridShutdown(Windows 8以降のみ有効)
数字2は強制実行するかどうかを指定します。
数字2強制実行の有無
0強制実行しない
1強制的に終了します。
終了メッセージを送らずに終了しますので、場合によってはデータ損失の可能性があります。
2終了メッセージに応答しないプロセスが合った場合、それらのプロセスを終了します。従来の手続きの「強制的に」チェックボックスはこちらの扱いになっています。
Logoff以外の操作はShutdown特権が無ければ実行できません。
成功した場合は以後のSTLは無視され、SASFは終了します。
失敗した場合は、STLの実行は継続されます。#_RESULTには0以外の数値が入ります。
#_RESULT意味
-3Shutdown特権が無い
-2数字2が有効な数字ではない
-1数字1が有効な数字ではない
1~GetSysErrMsg手続きで詳細が取得できます
SuspendState(数字1,数字2,数字3)
サスペンドを実行します。
数字1サスペンド方法
0ハイバネート
0以外サスペンド
数字2強制フラグ
0各アプリケーションへの問い合わせを行います。
0以外強制的にsuspend状態になります。
数字3wakeup event
0アクティブになります。
0以外アクティブにならないようにします。
SwitchUser()
「ユーザーの切り替え」と同等です。成功した場合には#_RESULTに0が、失敗した場合は0以外が格納されます。GetSysErrMsgでエラーの詳細を取得できます。
XP以降でのみ有効です。

システム判別式

IsAdmin()
現在実行中のSASFがAdmin権限で実行されていれば真。
LogonUserでAdministrator権限のユーザーに偽装しても、この関数は偽を返します。
IsEnabledUAC()
UACが有効ならば真。
VISTA以降でのみ有効です。Windows 2000、XPでは常に偽を返します。
注・SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUAの値を参照しているだけです。
IsKeyPressed(数字1、数字2)
数字2で指定されたキーが押されていれば真。
数字1に0を指定した場合はWin32APIのGetAsyncKeyStateを使用します。0以外の場合はGetKeyStateを使用します。なんのことだか解らない場合は、とりあえず0を指定しておいてください。
数字2にはチェックしたいキーのキーコードを入れます。キーコードについては #_KEYCODE の説明を参照してください。
IsLongPathsReady()
MAX_PATH制限が緩和されている場合に真となります。真の場合、SASFは(ファイルシステムに寄りますが)最大32760文字までのパスをサポートします。偽の場合は260文字までになります。
なお、制限が緩和されるファイルシステムはVFAT、FAT32、exFAT、NTFS、UDFになります。
注意
制限が緩和されるには以下の条件があります。
IsWow64()
SASFがWow64上で稼働していれば真。
ver 3.07までは常に真を返していたが、ver 3.08より「x86_64上で32bitのprogramを走らせている時」のみ真を返すように変更されました。x86上では常に偽を返します。
64bit版SASFでは常に偽を返します。
IsX86()
OSが32bitの場合に真
IsX64()
OSが64bitの場合に真

<<< 前へ   TOP   次へ>>>