システム関数#
システム情報#
- kindofos(データ種別=FALSE)#
OS種別、またはアーキテクチャを判定します
- パラメータ:
データ種別 (真偽値または定数 省略可) --
以下のいずれかを指定
- IS_64BIT_OS, TRUE
OSが64ビットかどうかを真偽値で返す
- KIND_OF_OS, FALSE
OS種別をOS定数で返す
- OS_WIN2000 (12)
- OS_WINXP (13)
- OS_WINSRV2003 (14)
- OS_WINSRV2003R2 (15)
- OS_WINVISTA (20)
- OS_WINSRV2008 (21)
- OS_WIN7 (22)
- OS_WINSRV2008R2 (27)
- OS_WIN8 (23)
- OS_WINSRV2012 (24)
- OS_WIN81 (25)
- OS_WINSRV2012R2 (26)
- OS_WIN10 (30)
- OS_WINSRV2016 (31)
- OS_WIN11 (32)
- OSVER_MAJOR
OSのメジャーバージョンを数値で返す
- OSVER_MINOR
OSのマイナーバージョンを数値で返す
- OSVER_BUILD
OSのビルド番号を数値で返す
- OSVER_PLATFORM
OSのプラットフォームIDを数値で返す
- 戻り値:
データ種別による
- env(環境変数)#
環境変数を展開します
- パラメータ:
環境変数 (文字列) -- 環境変数を示す文字列
- 戻り値:
展開された環境変数(
文字列
)
サンプルコード
print env('programfiles') // C:\Program Files
- wmi(WQL, 名前空間='root/cimv2')#
- WQLを発行しWMIから情報を得ます
- パラメータ:
WQL (文字列) -- WMIに対するクエリ文
名前空間 (文字列 省略可) -- 名前空間のパス
- 戻り値:
クエリ結果(
UObject配列
)
サンプルコード
res = wmi('select name, processid, commandline from Win32_Process where name = "uwscr.exe"') for obj in res print obj.name print obj.processid print obj.commandline next
- cpuuserate()#
- システム全体での1秒間のCPU使用率を得る
- 戻り値の型:
数値
- 戻り値:
CPU使用率
- sensor(種別)#
- 各種センサーから情報を得る (Sensor APIを使用)
- パラメータ:
種別 (定数) --
センサー種別を指定する定数
- SNSR_Biometric_HumanPresense
- 人が存在した場合に True
- SNSR_Biometric_HumanProximity
- 人との距離(メートル)
- SNSR_Electrical_Capacitance
- 静電容量(ファラド)
- SNSR_Electrical_Resistance
- 電気抵抗(オーム)
- SNSR_Electrical_Inductance
- 誘導係数(ヘンリー)
- SNSR_Electrical_Current
- 電流(アンペア)
- SNSR_Electrical_Voltage
- 電圧(ボルト)
- SNSR_Electrical_Power
- 電力(ワット)
- SNSR_Environmental_Temperature
- 気温(セ氏)
- SNSR_Environmental_Pressure
- 気圧(バール)
- SNSR_Environmental_Humidity
- 湿度(パーセンテージ)
- SNSR_Environmental_WindDirection
- 風向(度数)
- SNSR_Environmental_WindSpeed
- 風速(メートル毎秒)
- SNSR_Light_Lux
- 照度(ルクス)
- SNSR_Light_Temperature
- 光色温度(ケルビン)
- SNSR_Mechanical_Force
- 力(ニュートン)
- SNSR_Mechanical_AbsPressure
- 絶対圧(パスカル)
- SNSR_Mechanical_GaugePressure
- ゲージ圧(パスカル)
- SNSR_Mechanical_Weight
- 重量(キログラム)
- SNSR_Motion_AccelerationX
- SNSR_Motion_AccelerationY
- SNSR_Motion_AccelerationZ
- X/Y/Z軸 加速度(ガル)
- SNSR_Motion_AngleAccelX
- SNSR_Motion_AngleAccelY
- SNSR_Motion_AngleAccelZ
- X/Y/Z軸 角加速度(度毎秒毎秒)
- SNSR_Motion_Speed
- 速度(メートル毎秒)
- SNSR_Scanner_RFIDTag
- RFIDタグの40ビット値
- SNSR_Scanner_BarcodeData
- バーコードデータを表す文字列
注意
UWSCRではサポートされません (必ずEMPTYを返します)
- SNSR_Orientation_TiltX
- SNSR_Orientation_TiltY
- SNSR_Orientation_TiltZ
- X/Y/Z 軸角(度)
- SNSR_Orientation_DistanceX
- SNSR_Orientation_DistanceY
- SNSR_Orientation_DistanceZ
- X/Y/Z 距離(メートル)
- SNSR_Orientation_MagHeading
- 磁北基準未補正コンパス方位
- SNSR_Orientation_TrueHeading
- 真北基準未補正コンパス方位
- SNSR_Orientation_CompMagHeading
- 磁北基準補正済みコンパス方位
- SNSR_Orientation_CompTrueHeading
- 真北基準補正済みコンパス方位
- SNSR_Location_Altitude
- 海抜(メートル)
- SNSR_Location_Latitude
- 緯度(度数)
- SNSR_Location_Longitude
- 経度(度数)
- SNSR_Location_Speed
- スピード(ノット)
- 戻り値の型:
真偽値、数値、文字列
- 戻り値:
種別に応じた値、値が取得できない場合はEMPTY
戻り値NaNの廃止
一部のエラーで値が取得できない場合にUWSCはNaNを返していましたが、UWSCRではEMPTYが返ります
プロセス実行#
- exec(ファイル名, 同期フラグ=FALSE, x=EMPTY, y=EMPTY, width=EMPTY, height=EMPTY)#
- プロセスを起動しますIDの取得に成功した場合はID0を更新します
- パラメータ:
ファイル名 (文字列) -- 実行するexeのパス
同期フラグ (真偽値 省略可) --
TRUE: プロセス終了までブロックする
FALSE: プロセス終了を待たずに続行する
x (数値 省略可) -- ウィンドウ表示位置(X座標)、省略時はウィンドウのデフォルト
y (数値 省略可) -- ウィンドウ表示位置(Y座標)、省略時はウィンドウのデフォルト
width (数値 省略可) -- ウィンドウの幅、省略時はウィンドウのデフォルト
height (数値 省略可) -- ウィンドウの高さ、省略時はウィンドウのデフォルト
- 戻り値:
同期フラグTRUE: プロセスの終了コード(
数値
)同期フラグFALSE:
ウィンドウID
(取得できなければ-1)失敗時: -1
- shexec(ファイル, パラメータ=EMPTY)#
- 対象ファイルに対してシェルにより指定された動作で実行させます(「ファイル名を指定して実行」とほぼ同じ)
- パラメータ:
ファイル (文字列) -- 実行するファイルのパス
パラメータ (文字列 省略可) -- 実行時に付与するパラメータ
- 戻り値:
真偽値
正常に実行されればTRUE
サンプルコード
shexec("cmd", "/k ipconfig")
CUIシェル#
- doscmd(コマンド, 非同期=FALSE, 画面表示=FALSE, Unicode=FALSE)#
- コマンドプロンプトを実行します
- パラメータ:
コマンド (文字列) -- 実行するコマンド
非同期 (真偽値 省略可) -- FALSEなら終了するまで待つ
画面表示 (真偽値 省略可) -- TRUEならコマンドプロンプトを表示する
Unicode (真偽値 省略可) -- TRUEならUnicode出力
- 戻り値:
非同期 と 画面表示 がいずれもFALSEであれば標準出力または標準エラー(
文字列
)を返す、それ以外はEMPTY
サンプルコード
// Unicode出力で文字化けを解消する cmd = "echo 森鷗外𠮟る 🐶" print doscmd(cmd, FALSE, FALSE, FALSE) // 森?外??る ?? print doscmd(cmd, FALSE, FALSE, TRUE) // 森鷗外𠮟る 🐶
- powershell(コマンド, 非同期=FALSE, 画面表示=FALSE, プロファイル無視=FALSE)#
- Windows PowerShell (バージョン6未満)を実行します
- pwsh(コマンド, 非同期=FALSE, 画面表示=FALSE, プロファイル無視=FALSE)#
- PowerShell (バージョン6以降)を実行します
- パラメータ:
コマンド (文字列 必須) -- 実行するコマンド
非同期 (真偽値 省略可) -- FALSEなら終了するまで待つ
画面表示 (真偽値または2 省略可) -- TRUEならPowerShellを表示する、2なら表示して最小化
プロファイル無視 (真偽値 省略可) -- TRUEなら$PROFILEを読み込まない
- 戻り値:
非同期と画面表示がいずれもFALSEであれば標準出力(
文字列
)を返す、それ以外はEMPTY
入力制御#
- lockhard(フラグ)#
- マウス、キーボードの入力を禁止する
要管理者特権
UWSCRを 管理者として実行 する必要がありますロックの強制解除
Ctrl+Alt+Delete
でロック状態を強制解除できますロックしたままでもUWSCRのプロセスが終了すればロックは解除されます
- パラメータ:
フラグ (真偽値 省略可) -- TRUEで入力禁止、FALSEで解除
- 戻り値の型:
真偽値
- 戻り値:
関数が成功した場合TRUE
- lockhardex([ID=EMPTY, モード=LOCK_ALL])#
- ウィンドウに対するマウス、キーボードの入力を禁止する
ロックの強制解除
Ctrl+Alt+Delete
でロック状態を強制解除できますロックしたままでもUWSCRのプロセスが終了すればロックは解除されます
ロック対象について
ロック可能な対象は常に一つですロック中に別のウィンドウに対してロックを行った場合元のウィンドウは開放されます- パラメータ:
ID (数値 省略可) -- 入力を禁止するウィンドウのID、0の場合はデスクトップ全体、EMPTYならロックを解除
モード (定数 省略可) --
禁止内容を指定
- LOCK_ALL (0)
- マウス、キーボードの入力を禁止
- LOCK_KEYBOARD
- キーボードの入力のみ禁止
- LOCK_MOUSE
- マウスの入力のみ禁止
- 戻り値の型:
真偽値
- 戻り値:
関数が成功した場合TRUE
音声出力#
- sound([名前=EMPTY, 同期フラグ=FALSE])#
- ファイル名、またはサウンドイベント名を指定しそれを再生する
UWSCとの違い
"BEEP" 指定のビープ音再生は廃止されました代わりにbeep
関数を使用してください注意
wavの再生デバイス選択には対応していません
- パラメータ:
名前 (文字列 省略可) --
- ファイル名
- 再生したいwavファイルのパスを指定
- サウンドイベント名
システム上で定義されているサウンドイベント名を指定
ヒント
サウンドイベント名について
環境により登録されているイベント名が異なる可能性があります以下はWin32のドキュメントに記載されていたイベント名ですSystemAsterisk
SystemExclamation
SystemExit
SystemHand
SystemQuestion
SystemStar
- EMPTY
- 再生を停止します
同期フラグ (真偽値 省略可) -- TRUEなら再生終了を待つ
- 戻り値:
なし
- beep([長さ=300, 周波数=2000, 繰り返し=1])#
- ビープ音を再生します
- パラメータ:
長さ (数値 省略可) -- ビープ音を再生する長さをミリ秒で指定
周波数 (数値 省略可) -- ビープ音の周波数(ヘルツ)を37-32767で指定
繰り返し (数値 省略可) -- 同じ長さと周波数のビープ音を繰り返し再生する回数
- 戻り値:
なし
キー入力#
- getkeystate(キーコード[, ID=0])#
- マウスやキーボードがクリックされたかどうか、または特定のキーのトグル状態を得る
- パラメータ:
キーコード (定数) --
VK定数(クリック判定)またはTGL定数(トグル判定)
- VK定数
- 仮想キーコード一覧 を参照
- TGL_NUMLOCK
- Num Lock
- TGL_CAPSLOCK
- Caps Lock
- TGL_SCROLLLOCK
- Scroll Lock
- TGL_KANALOCK
- カタカナ入力 (要ID指定)
- TGL_IME
- IME (要ID指定)
ID (数値 省略可) --
TGL_KANALOCK
,TGL_IME
にて入力方式を確認したいウィンドウのID0ならアクティブウィンドウ
- 戻り値の型:
真偽値
- 戻り値:
クリックされていたらTRUE、またはトグル状態がオンならTRUE
- sethotkey(キーコード[, 修飾子キー=0, 関数=EMPTY])#
- 関数をホットキーに登録
- パラメータ:
キーコード (定数) -- 登録するキーコードをVK定数で指定 (VK定数は 仮想キーコード一覧 を参照)
修飾子キー (定数 省略可) --
同時に押す修飾子キーを指定、OR連結で複数指定、0なら修飾子キーなし
- MOD_ALT
- Altキー
- MOD_CONTROL
- Controlキー
- MOD_SHIFT
- Shiftキー
- MOD_WIN
- Winキー
関数 (文字列またはユーザー定義関数 省略可) --
ホットキー入力時に実行するユーザー定義関数、またはその名前を文字列で指定省略時、またはEMPTYや空文字が入力された場合はホットキーを解除する指定関数の注意点
引数を受ける関数の場合、引数は無視されます (引数0の関数として扱われる)関数内で引数へのアクセスを行う場合はエラーになります関数内でエラーが発生した場合はスクリプトが強制終了されますHOTKEY特殊変数
ホットキーで呼ばれる関数内では以下の変数が使えます- HOTKEY_VK
- ホットキーのキーコード
- HOTKEY_MOD
- ホットキーの修飾子キー
- 戻り値:
なし
仮想キーコード一覧#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
システム制御#
- poff(コマンド[, スクリプト再実行=TRUE])#
- 電源等の制御
- パラメータ:
コマンド (定数) --
制御方法を示す定数
- P_POWEROFF
- PCの電源オフ
- P_SHUTDOWN
- PCの電源を切れる状態までOSをシャットダウンする
- P_LOGOFF または P_SIGNOUT
- 現在のユーザーをサインアウトする
- P_REBOOT
- PCを再起動する
- P_SUSPEND または P_HIBERNATE
- PCを休止状態にするシステムが休止をサポートしている必要があります
- P_SUSPEND2 または P_SLEEP
- PCをスリープ状態にする
- P_MONIPOWER または P_MONITOR_POWERSAVE
- モニタを省電力モードにするモニタが省電力機能をサポートしている必要があります
- P_MONIPOWER2 または P_MONITOR_OFF
- モニタの電源を切るモニタが省電力機能をサポートしている必要があります
- P_MONIPOWER3 または P_MONITOR_ON
- モニタの電源を入れるモニタが省電力機能をサポートしている必要があります
- P_SCREENSAVE
- スクリーンセーバーを起動
- P_UWSC_REEXEC
- UWSCRの再起動第二引数がTRUEならスクリプトを再実行する
無限ループに注意
スクリプト再実行を行う場合はpoffの実行条件に注意してください繰り返しスクリプトの再実行が行われるおそれがありますコンソールモード中の場合
ウィンドウモードで再実行されます
- P_FORCE
- アプリケーションの終了を待たずにサインアウトしたい場合や、シャットダウンを強制したい場合に指定
P_POWEROFF
,P_SHUTDOWN
,P_LOGOFF
,P_REBOOT
のいずれかにOR
で連結指定するそれ以外の場合は無視されるpoff(P_POWEROFF or P_FORCE) // 強制電源断
スクリプト再実行 (真偽値 省略可) --
TRUEなら
P_UWSC_REEXEC
指定時にスクリプトを再実行するUWSCとの違い
デフォルト値がTRUEになりました
- 戻り値:
なし
OPTFINALLY指定時の動作
自身のプロセス終了を伴う以下のコマンドがtry
節で実行された場合OPTFINALLY指定時に限りfinally
節が実行されます- 自身を終了する前にfinallyを実行
P_UWSC_REEXEC
- コマンド呼び出し前にfinallyを実行 (finally節が終了するまでこれらの処理は行われない)
P_POWEROFF
P_SHUTDOWN
P_LOGOFF
P_REBOOT
OPTION OPTFINALLY try poff(P_UWSC_REEXEC) msgbox("poff以降は実行されない") finally msgbox("finallyが実行される") endtry
// OPTFINALLYが無い場合 try poff(P_UWSC_REEXEC) finally msgbox("OPTFINALLYがないので実行されない") endtry
OPTION OPTFINALLY // poffがtryの外にある場合 poff(P_UWSC_REEXEC) try finally msgbox("OPTFINALLYがあってもtry外だと実行されない") endtry
シャットダウンの理由
poffによるシャットダウンは以下の理由で行われますSHTDN_REASON_MAJOR_OTHER
SHTDN_REASON_MINOR_OTHER
SHTDN_REASON_FLAG_PLANNED
日時#
- gettime([補正値=0, 基準日時=EMPTY, 補正値オプション=G_OFFSET_DAYS, ミリ秒=FALSE])#
- 指定日時の2000年1月1日からの経過時間を得るまたその時間に該当する日時情報を
G_TIME_*
特殊変数に格納する- パラメータ:
補正値 (数値 省略可) -- 基準日時を起点として指定値分ずらした日時を得る
基準日時 (文字列 省略可) --
基準となる日時を指定、EMPTYで現在時刻以下の形式で指定"YYYYMMDD"
"YYYY/MM/DD"
"YYYY-MM-DD"
"YYYYMMDDHHNNSS"
"YYYY/MM/DD HH:NN:SS"
"YYYY-MM-DD HH:NN:SS"
- RFC 3339 形式
タイムゾーン情報を含めた場合ローカル時間に変換されます
補正値オプション (定数 省略可) --
補正値の指定方法を指定
- G_OFFSET_DAYS
- 補正値を日数として扱う
- G_OFFSET_HOURS
- 補正値を時間として扱う
- G_OFFSET_MINUTES
- 補正値を分として扱う
- G_OFFSET_SECONDS
- 補正値を秒として扱う
- G_OFFSET_MILLIS
- 補正値をミリ秒として扱う
ミリ秒 (真偽値 省略可) -- 戻り値を秒ではなくミリ秒で返す
- 戻り値の型:
数値
- 戻り値:
2000年1月1日からの秒数
実行後に変更される特殊変数
以下の変数がgettime関数の結果に応じて変更されます文字列型の場合は桁数分左0埋めされますこれらの変数の変更が適用されるのはgettimeを呼び出したスコープ内に限定されます変数
型
内容
G_TIME_YY
数値
年
G_TIME_MM
数値
月
G_TIME_DD
数値
日
G_TIME_HH
数値
時
G_TIME_NN
数値
分
G_TIME_SS
数値
秒
G_TIME_ZZ
数値
ミリ秒
G_TIME_WW
数値
曜日 (0:日,1:月,2:火,3:水,4:木,5:金,6:土)
G_TIME_YY2
文字列
年 (下2桁)
G_TIME_MM2
文字列
月 (2桁)
G_TIME_DD2
文字列
日 (2桁)
G_TIME_HH2
文字列
時 (2桁)
G_TIME_NN2
文字列
分 (2桁)
G_TIME_SS2
文字列
秒 (2桁)
G_TIME_ZZ2
文字列
ミリ秒 (3桁)
G_TIME_YY4
文字列
年 (4桁)
以下の定数でG_TIME_WW
と比較ができますG_WEEKDAY_SUN
(0)G_WEEKDAY_MON
(1)G_WEEKDAY_TUE
(2)G_WEEKDAY_WED
(3)G_WEEKDAY_THU
(4)G_WEEKDAY_FRI
(5)G_WEEKDAY_SAT
(6)
サンプルコード
dt = "2023/04/01 10:10:10" // 戻り値 print gettime(, dt) // 733659010 // ミリ秒で返す print gettime(, dt,, TRUE) // 733659010000 // 第一引数の単位変更 // 従来の書き方で6時間ずらす ts1 = gettime(0.25, dt) // 第三引数指定で時間扱いになる ts2 = gettime(6, dt, G_OFFSET_HOURS) assert_equal(ts1, ts2) // format関数による日時フォーマット ts = gettime(, dt) print format(ts, "%c") // 2023年04月01日 10時10分10秒 // RFC3339形式 ts = gettime(, "2023-10-10T00:00:00+0000") print format(ts, "%c") // 2023年10月10日 09時00分00秒
音声#
- speak(発声文字[, 非同期=FALSE, 中断=FALSE])#
- 指定文字列を音声として再生する
- パラメータ:
発声文字 (文字列) -- 発声させたい文字列
非同期 (真偽値 省略可) -- TRUEなら非同期で発声、FALSEなら発声終了を待つ
中断 (真偽値 省略可) --
別の音声が発生中の場合にTRUEなら中断し、FALSEなら終了を待ってから発声させる
終了待ちについて
音声の終了待ちは、speak関数を非同期TRUEで事前に実行していた場合のみ有効ですまた、speak関数は同一スレッド上で実行されている必要があります
- 戻り値:
なし
- recostate(開始フラグ[, 登録単語...])#
- 任意の単語を登録し音声認識を開始、または終了する
有効範囲はスレッド単位
登録及び解除は同一スレッド上でのみ有効です- パラメータ:
開始フラグ (真偽値) -- TRUEで音声認識を開始、FALSEで解除
登録単語 (文字列または文字列の配列) -- 開始フラグがTRUEの場合に音声認識させたい言葉を指定、未指定の場合は認識エンジンの標準辞書を使用する
- 戻り値の型:
文字列
- 戻り値:
使用する認識エンジン名、登録失敗時はEMPTY
- dictate([拾得待ち=TRUE, タイムアウト=10000])#
- recostate関数で登録した単語が音声入力されたらその文字列を返す
単語登録について
recostate関数が開始フラグTRUEで実行されていない場合は即座に終了しEMPTYを返しますまた、recostate関数は同一スレッド上で実行されている必要があります- パラメータ:
拾得待ち (真偽値 省略可) -- TRUEなら入力を待つ、FALSEなら直近の入力を返す(入力がなければEMPTYを返す)
タイムアウト (数値 省略可) -- 拾得待ちがTRUEだった場合に待機する時間(ミリ秒)、0なら無限に待つ、拾得待ちFALSEなら無視される
- 戻り値の型:
文字列
- 戻り値:
拾得した文字列、拾得待ちTRUEでタイムアウトまたは拾得待ちFALSEで入力がない場合はEMPTY
サンプルコード
// 単語を登録する print recostate(TRUE, "りんご", "みかん", "いちご", "おわり") print "「りんご」「みかん」「いちご」に反応します" print "「おわり」で終了" while TRUE select word := dictate(TRUE) case "おわり" print "終了します" break case EMPTY // デフォルトでは10000ミリ秒経過でタイムアウト print "タイムアウトしました" break default print word selend wend // 登録を解除 recostate(false)