プロが教えるわが家の防犯対策術!

Windowsタスクマネージャのプロセス内で、右クリックして出てくる優先度の設定

リアルタイム

通常以上
通常
通常以下


をMSDOSのバッチファイルを使って変更する方法ってあるでしょうか。
たとえばイメージを削除するtaskkillのように。
複数のアプリを今はいちいち手動で変更しているのでめんどくさいです。


もし、バッチファイルでできないのなら、というより、こちらも是非知りたいのですが、VisualC++で、プログラミングでこれらを変える方法も教えてください。
こちらの場合は、既に起動しているアプリイメージを変更する場合と、C++でアプリを作成して、それ自身を起動した場合、自分自身の優先度を変更する場合の双方がわかればうれしいです。

A 回答 (1件)

プロセスの起動時に設定するのが一番簡単です。


例えばメモ帳を高優先度で起動:
start /high %SystemRoot%\notepad.exe

既に起動している場合は wmic を使ってください:
wmic process where name="notepad.exe" call setpriority 128

wmic.exe を搭載していない Windows を使っているなら
PrcView に付いてくる pv.exe でも使ってください。
他にも探せばあります。

C言語の場合は、新しいプロセスを作る CreateProcess() の引数
dwCreationFlags に優先度を指定するオプションがあります。
http://msdn.microsoft.com/ja-jp/library/cc429066 …

既に起動している場合は、
SetPriorityClass() で変更します。
http://msdn.microsoft.com/ja-jp/library/cc429331 …
プロセス・ハンドルは、EnumProcess() か
CreateToolhelp32Snapshot() で探してください。
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng. …
自分自身のハンドルは GetCurrentProcess() で取れます。

C++/CLI を使った .NET Framework でも
おそらく同様のことが(もっと簡単に)できますが
専門外なのでわかりません。
    • good
    • 0
この回答へのお礼

お返事ありがとうございました。

なかなか誰からも返事がないので、あきらめかけていたところでした。

大変よくわかりました。
早速、利用させていただきます。

お礼日時:2009/08/14 11:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!