プロセスの優先度を変更してアプリを起動する(Windows)

2017/11/26

#Windows10 エンコード

Windowsでアプリの優先度を予め変更して起動する方法は下記の通り。

  1. 任意の場所(デスクトップ等)に優先度を変更したいアプリのショートカットを作成。
  2. 作成したショートカットを右クリックしてプロパティを選択。
  3. 「リンク先」の先頭に cmd /c start "" /BELOWNORMAL を追加。

入力例: cmd /c start "" /BELOWNORMAL "C:\Program Files\foo\bar.exe"

設定例(プロパティ画面)

こうして保存したショートカット経由で起動すると、アプリの実行優先度が変更されます。
優先度指定は/BELOWNORMALの部分で、下記のオプション名が指定できます。

オプション名 優先度
/REALTIME 最高 ※
/HIGH 高 ※
/ABOVENORMAL 通常以上
/NORMAL 通常
/BELOWNORMAL 通常以下
/LOW

/REALTIME/HIGHはWindows自体が操作不能になる可能性があります。動作を充分理解している場合以外は使わないようにしましょう。

多くのアプリは/NORMALで動作しているので、大抵は通常以下の/BELOWNORMALか通常以上の/ABOVENORMALで足りるでしょう。

動作はWindows 10で確認。8以前でもたぶん同様に設定できると思います。
以下、詳細解説(蛇足)。

cmdは必要?

この方法ではstartコマンド経由でアプリを起動しますが、start.exeという実行ファイルは存在せず、startはcmd.exeの機能である為、ショートカットする場合はcmd /c startという少々回りくどい指定をする必要があります。 なお、上記のように設定すると自動的にcmd.exeへのパスが補完されるので、パスまで入力する必要はありません。(C:\Windows\System32\cmd.exe等になる)

startコマンドの謎仕様

startコマンドには実行時のタイトルを指定するオプションがあり、単純に実行パスを "…" で括って渡すとこれがタイトルとして処理されてしまい、結果何も実行されません。なので、引用符で括ったパスを渡したい場合はダミーのタイトルが必要で、start ""と指定するのはその為です。

これ便利?

バックグラウンドで何か重い処理(動画のエンコード等)をしながら作業する場合に便利。
時々、XnConvertを使って画像の一括変換をするのだけれど、優先度が通常で起動する上、優先度を変更する設定も無いようで、変換中に他のプロセスの操作が重くなって困った。タスクマネージャから毎回変更してたけど面倒すぎたので、何かこうシンプルな解決策はないかなーと。

他の方法としては、こういうソフトもあるみたい。

それにしても、単純にプロパティで優先度くらい変更できてもいいのになーと思う。

参考サイト

サイト内を検索

自己紹介

自分の写真
スマートフォン(Android)、IT、PC、プログラミング等の役立つ(かもしれない)情報や気になる話題を書いています。

QooQ