PowerShellでプログラムを実行して、優先度を上げるときのやり方

こんな書き方があります

arma3server_x64.exeの一例になります。
# プログラムの起動引数を定義
[string]$_arguments = "-config=server.config -cfg=basic.cfg"

# プロセスの設定を定義
$_startInfo = New-Object System.Diagnostics.ProcessStartInfo
$_startInfo.FileName = "arma3server_x64.exe"

# プログラムの起動引数を設定
$_startInfo.Arguments = $_arguments
$_startInfo.WorkingDirectory = "C:\arma3"

# プロセスのインスタンスを生成
$_process = New-Object System.Diagnostics.Process

# プロセスの設定を格納
$_process.StartInfo = $_startInfo

# プログラムを実行する
$_process.Start()

# 優先度の設定を「高」にする(注1)
$_process.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::High

# プログラムが終了するまで待機(注2)
$_process.WaitForExit()
注1:プログラムを実行したあとに優先度の設定を行ってください。例外が発生した後、通常の優先度でプログラムを実行します。
注2:プログラムが4KB以上の標準出力を行う場合は、フリーズするため内部バッファをクリアしないと「応答なし」になります。 arma3server_x64.exe は標準出力がないので問題ありません。

0 件のコメント:

コメントを投稿

コメントありがとう!

TWELITEのAppTag OTAを使ってみる

AppTag OTAを使ってみる 無線タグをリモートで設定できます。纏まっているドキュメントがないのでメモ書きです。TWELITEは低消費電力、安価、使いやすい無線マイコンです。センサネットワークの構築がとても楽です。過去に Sun Microsystems の SunSPOTを...