• ベストアンサー

SetPriorityClassで「通常以上」「通常以下」にする方法

開発環境:Windows2000(SP4)、VC6(SP??) 現在、SetPriorityClassを使用してプロセス優先度を設定しようとしているのですが、「通常以上」,「通常以下」の設定だけ出来ません(リアルタイムや高などはできるのに・・・) SetPriorityClassの第2引数に「通常以上」または「通常以下」の定数をしてコンパイルすると「定義されていない識別子にです。」と出ます。 何かincludeしたりしなくてはいけないのでしょうか? お分かりの方がいらしたら、ご教授願います。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

SetPriorityClassはプロセスの優先度で、受け付けるのは、 HIGH_PRIORITY_CLASS、IDLE_PRIORITY_CLASS、 NORMAL_PRIORITY_CLASS、REALTIME_PRIORITY_CLASS で、通常以上・以下は含まれていません。 そちらは、SetThreadPriorityを使います。 それだと、THREAD_PRIORITY_LOWESTなどが指定できます。 ちなみに、定義されていない識別子とされた定数って 何を指定されましたか? 最終的には、プロセスの優先順位クラスと、スレッド の相対優先順位でスレッドの基本優先順位が決まるの だそうです。

harunaruna
質問者

お礼

早速の回答ありがとうございます。 指定した定数はABOVE_NORMAL_PRIORITY_CLASSとBELOW_NORMAL_PRIORITY_CLASSです。 SetThreadPriorityですかぁ。試してみようと思います。 ありがとうございます。

その他の回答 (1)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

>開発環境:Windows2000(SP4)、VC6(SP??) Win2000以降でしか使用不可な定数ということは、Win2000発売前の製品であるVC++6には定義が存在しません。 最新のPlatformSDKをインストールしてください。 http://www.microsoft.com/msdownload/platformsdk/sdkupdate/

参考URL:
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
harunaruna
質問者

お礼

回答、ありがとうございます。 さきほど自己解決してしまいました・・・笑 定数を使用せず直接、値を入れて実行したら「通常以上」「通常以下」が設定できました。 ちょっとプログラム的には不細工ですがこれで行こうと思います。 ありがとうございました。