Windowsでアプリの優先度を予め変更して起動する方法は下記の通り。
- 任意の場所(デスクトップ等)に優先度を変更したいアプリのショートカットを作成。
- 作成したショートカットを右クリックしてプロパティを選択。
- 「リンク先」の先頭に
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を使って画像の一括変換をするのだけれど、優先度が通常で起動する上、優先度を変更する設定も無いようで、変換中に他のプロセスの操作が重くなって困った。タスクマネージャから毎回変更してたけど面倒すぎたので、何かこうシンプルな解決策はないかなーと。
他の方法としては、こういうソフトもあるみたい。
- Vector 新着ソフトレビュー 「Application Priority Changer」 ユーザの指定したプロセスを監視し、起動時に優先度設定やCPUアフィニティを自動変更する
それにしても、単純にプロパティで優先度くらい変更できてもいいのになーと思う。