ProcessSetPriority

最初のマッチング処理の優先度を変更します。

ProcessSetPriority Level , PIDOrName

パラメータ

Level

型:文字列

次の単語または文字のいずれかを指定します:

リアルタイム優先で実行するように設計されていないプロセスは、そのレベルに設定するとシステムの安定性を低下させる可能性があることに注意してください。

PIDOrName

型:整数または文字列

空白または省略された場合、スクリプト自身のプロセスが使用されます。それ以外の場合は、数字(PID)またはプロセス名のいずれかを指定します:

PID:プロセスID。これは、ある特定のプロセスを一意に識別するための番号です。(この番号は、そのプロセスが生きている間だけ有効です)。新しく立ち上げたプロセスのPIDは、Run関数で決定することができます。同様に、WinGetPIDでウィンドウのPIDを知ることができます。ProcessExistは、PIDを発見するために使用することもできます。

名前:プロセスの名前は通常、notepad.exeやwinword.exeなどの実行ファイルと同じです(パスなし)。一つの名前が複数の実行中のプロセスに一致する可能性があるため、最初のプロセスのみが操作されることになります。名前の大文字と小文字は区別されません。

戻り値

型:整数

説明: 指定されたプロセスのプロセスID(PID)を返します。一致するプロセスが見つからなかったり、操作できなかったりした場合は、0を返します。

備考

プロセスの現在の優先順位は、Windowsのタスクマネージャーで確認することができます。

Run, Process functions, Win functions

Launches Notepad, sets its priority to high and reports its current PID.

Run "notepad.exe", , , &NewPID
ProcessSetPriority "High", NewPID
MsgBox "The newly launched Notepad's PID is " NewPID

ホットキーを押して、アクティブウィンドウのプロセスの優先順位を変更することができます。

#z:: ; Win+Z 
{
    active_pid := WinGetPID("A")
    active_title := WinGetTitle("A")
    MyGui := Gui(, "Set Priority")
    MyGui.Add("Text",, "
    (
        ESCAPEキーを押してキャンセルするか、ダブルクリックで新しい
        優先順位は、次のウィンドウで設定します:
)")
    MyGui.Add("Text", "wp", active_title)
    LB := MyGui.Add("ListBox", "r5 Choose1", ["Normal","High","Low","BelowNormal","AboveNormal"])
    LB.OnEvent("DoubleClick", SetPriority)
    MyGui.Add("Button", "default", "OK").OnEvent("Click", SetPriority)
    MyGui.OnEvent("Escape", (*) => MyGui.Destroy())
    MyGui.OnEvent("Close", (*) => MyGui.Destroy())
    MyGui.Show()

SetPriority(*)
    {
        new_prio := LB.Text
        MyGui.Destroy()
        if ProcessSetPriority(new_prio, active_pid)
            MsgBox "Success:Its priority was changed to " new_prio
        else
            MsgBox "Error:Its priority could not be changed to " new_prio
    }
}