本ページには広告が含まれています。
CPU使用率を取得します。
- 構文
- Integer = CPUUSERATE( )
- 引数
- 戻り値
- CPU使用率(分解能1秒)
使い方
以下はループ処理でCPU使用率が80%以上になるときだけ10秒間のスリープを入れるプログラムです。
WHILE TRUE
// 何らかの処理
IF CPUUSERATE() >= 80 THEN SLEEP(10.000)
WEND
CPU使用率が80%以上の間スリープする場合は、以下のように書きます。
WHILE CPUUSERATE() >= 80
SLEEP(0.001)
WEND
CPUUSERATE関数が示すCPU使用率とタスクマネージャーが示すものでは値が違うので、タスクマネージャーが示す値を取得したい場合は、以下のプログラムを使用します。
タスクマネージャーを起動しタスクトレイに表示される値を取得しています。
このプログラムで取得するCPU使用率の値はタスクマネージャーの更新頻度に依存するので、必要に応じてタスクマネージャー上部にあるメニューの[表示]-[更新の頻度]の設定を変更してください。
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.FileRun()
DIM ID = GETID("ファイル名を指定して実行")
SENDSTR(ID, "taskmgr")
CLKITEM(ID, "OK", CLK_BTN)
CTRLWIN(GETID("タスク マネージャー"), MIN)
ID = GETID("", "Shell_TrayWnd")
WHILE TRUE
GETITEM(ID, ITM_TOOLBAR, -1)
FOR i = 0 TO GETITEM(ID, ITM_TOOLBAR, -1) - 1
DIM str = ALL_ITEM_LIST[i]
IFB POS("CPU ", str) <> 0 AND POS("メモリ ", str) <> 0 THEN
DIM array = SPLIT(str, "<#CR>")
FUKIDASI(VAL(REPLACE(REPLACE(array[0], "CPU ", ""), "%", "")))
BREAK
ENDIF
NEXT
SLEEP(0.001)
WEND
プログラム実行例
CPU使用率を取得する
CPU使用率を1秒毎に取得し、直近100回分の値の最大値・最小値・平均値を吹き出しに表示する。
DIM array[100]
SETCLEAR(array, CPUUSERATE())
DIM i = 1
WHILE TRUE
SHIFTARRAY(array, 1)
array[0] = CPUUSERATE()
FUKIDASI("現在<#TAB>" + CPUUSERATE() + "%<#CR>" + _
"最大値<#TAB>" + CALCARRAY(array, CALC_MAX) + "%<#CR>" + _
"最小値<#TAB>" + CALCARRAY(array, CALC_MIN) + "%<#CR>" + _
"平均値<#TAB>" + ROUND(CALCARRAY(array, CALC_AVR), -2) + "%")
i = i + 1
SLEEP(1.000)
WEND
使用関数
関連記事
- GETDIR関数 (スクリプト関数)
- GETFORMDATA関数 (スクリプト関数)
- POSACC関数 (スクリプト関数)
- FSO.GetFolder メソッド
- 指定したパスのFolder オブジェクトを返します。
- File.Type プロパティ (FSO)
- 指定したファイルの種類を返します。
- small関数 (自作関数)
- 配列の中で小さい方から数えた順位の値を求めます。
- Document.getElementsByClassName メソッド (DOM)
- 引数で与えられたクラス名を持つ要素のリストを返します。