少し強引に 〜優先度を指定してアプリケーションを起動〜 

Windows2000/XPでは実行中のプロセス(実行ファイル)に対して6段階で優先度をユーザーが指定することができるように作られています。
Windows95/98/Meでは最適な処理がされているそうですが、どっちがユーザーにとっていいんだろうかと無限に悩みたい方にはちょうどいいお題目です。
が、System関連のプロセスは既定のまま運用しないと、何がどう影響するかわかりませんし、トラブルを回避する意味でも「リアルタイム」の優先度は指定しない方がいいと思います。

デスクトップ上で右クリック→「新規作成」→「ショートカット」とたどります。
開くダイアログで
cmd /c start "" [指定する優先度] /D[実行ファイルのあるフォルダへのフルパス] [実行ファイルのフルパス]
とコマンドを入力します。

たとえば「高」の優先度で「メモ帳」を起動するなら
「cmd /c start /HIGH /dC:\Windows\System32 C:\Windows\System32\notepad.exe」となりますね。
「次へ」ボタンを押下して、表示されたダイアログにはわかりやすい名前を入力して「完了」ボタンを押下します。
これで、デスクトップにできたアイコンをダブルクリックすると「高」の優先度でメモ帳が起動するようになります。→なりません!!

http://www.atmarkit.co.jp/fwin2k/win2ktips/112changepriority/112changepriority_02.html
>「/high」などのオプションと組み合わせると、これでは動作しないようである。
これが駄目だった原因のようです。すみません。

で、動作させることができたコマンドは
cmd /c start /d[パス名] /[優先度] [実行ファイル名]
で、""を使用しなくても済むように
cmd /c start /dC:\Progra~1\Micros~1\OFFICE11 /HIGH POWERPNT.EXE
と記述することでPowerpointが起動した・・・のですが、優先度が「普通」のままでした。

---
w2k/XP:パフォーマンス
http://homepage2.nifty.com/winfaq/c/ntperf.html#1076
に同様の記述があるのですが、そっくりコピーしても「通常」で起動してしまいます。
---

ごめんなさい。ギブアップです。

体裁を整えるためのネタ画像




…ってことで、deadlineサソに教えてもらっちゃいました。
以下かなりのボリュームになりますが、教えていただいた詳細な検証結果をそっくりこぴぺったんします。
----↓ここから↓----
プライオリティ指定の "start" コマンドのまとめ

 任意のプライオリティ(実行優先度)でプログラムを起動するには、実行ファイル
名を8.3形式のフルパス名で指定します。
 プライオリティの指定を二重引用符( " )で括ってはいけません。⇒⇒⇒プライ
オリティが設定されません。
 実行ファイル名を二重引用符( " )で括ってはいけません。⇒⇒⇒プログラムが
起動しません。(プライオリティの指定も同時に二重引用符( " )で括ると、起動
するには起動します。が、プライオリティが設定されません。)

・/d"パス名" オプションを指定しない場合のコマンドライン
  ・cmd /c start [/low | /normal | /high | /realtime | /abovenormal |
/belownormal] 8.3形式の実行ファイルのフルパス名
   例)cmd /c start /high C:\PROGRA~1\MICROS~1\OFFICE\EXCEL.EXE

  ・/d"パス名" オプションを指定しない場合で、なおかつ、実行ファイルがカレ
ントディレクトリ直下にあるか、実行ファイルの置かれているディレクトリにパスを
通してある場合のコマンドライン
    ・cmd /c start [/low | /normal | /high | /realtime | /abovenormal |
/belownormal] 8.3形式の実行ファイル名
     例)cmd /c start /high EXCEL.EXE
      (↑パスが通っていないと、起動はしても、プライオリティが設定され
ません。)

・/d"パス名" オプションを指定する場合のコマンドライン
  ・cmd /c start /d"パス名" [/low | /normal | /high | /realtime |
/abovenormal | /belownormal] 8.3形式の実行ファイルのフルパス名
  ・cmd /c start [/low | /normal | /high | /realtime | /abovenormal |
/belownormal] /d"パス名" 8.3形式の実行ファイルのフルパス名
   例)cmd /c start /d"C:Program Files\Microsoft Office\Office" /high
C:\PROGRA~1\MICROS~1\OFFICE\EXCEL.EXE
   例)cmd /c start /high /d"C:Program Files\Microsoft Office\Office"
C:\PROGRA~1\MICROS~1\OFFICE\EXCEL.EXE
    (↑[/low | /normal | /high | /realtime | /abovenormal |
/belownormal] オプションと、/d"パス名" オプションはどちらを先に指定しても構
いません。また、/dと"パス名"の間にスペースを入れても入れなくても、パス名がロ
ングネーム形式でも8.3形式でも、結果は変わりません。)

  ・/d"パス名" オプションを指定する場合で、なおかつ、実行ファイルがカレン
トディレクトリ直下にあるか、実行ファイルの置かれているディレクトリにパスを通
してある場合のコマンドライン
    ・cmd /c start /d"パス名" [/low | /normal | /high | /realtime |
/abovenormal | /belownormal] 8.3形式の実行ファイル名
    ・cmd /c start [/low | /normal | /high | /realtime | /abovenormal |
/belownormal] /d"パス名" 8.3形式の実行ファイル名
     例)cmd /c start /d"C:Program Files\Microsoft Office\Office" /high EXCEL.EXE
     例)cmd /c start /high /d"C:Program Files\Microsoft Office\Office" EXCEL.EXE
      (↑パスが通っていないと、起動はしても、プライオリティが設定され
ません。)

検証結果:(Windows 2000 Server+Office 2000での実行結果)

・/d"パス名" オプションを指定しない場合の実行結果

    ・cmd /c start /high "C:Program Files\Microsoft Office\Office\EXCEL.EXE"   ⇒ 起動せず
    ・cmd /c start "/high" "C:Program Files\Microsoft Office\Office\EXCEL.EXE" ⇒ NORMAL

    ・cmd /c start /high C:\PROGRA~1\MICROS~1\OFFICE\EXCEL.EXE   ⇒ HIGH
    ・cmd /c start "/high" C:\PROGRA~1\MICROS~1\OFFICE\EXCEL.EXE ⇒ NORMAL
    ・cmd /c start /high "C:\PROGRA~1\MICROS~1\OFFICE\EXCEL.EXE" ⇒ 起動せず
    ・cmd /c start "/high" "C:\PROGRA~1\MICROS~1\OFFICE\EXCEL.EXE" ⇒ NORMAL

    ・cmd /c start /high EXCEL.EXE     ⇒ NORMAL
    ・cmd /c start "/high" EXCEL.EXE    ⇒ NORMAL
    ・cmd /c start /high "EXCEL.EXE"    ⇒ 起動せず
    ・cmd /c start "/high" "EXCEL.EXE"   ⇒ NORMAL

  ・"C:Program Files\Microsoft Office\Office"にパスを通した上での実行結果
(カレントディレクトリを"C:Program Files\Microsoft Office\Office"に移動した
上での実行結果も同じ)
      ・cmd /c start /high EXCEL.EXE     ⇒ HIGH
      ・cmd /c start "/high" EXCEL.EXE    ⇒ NORMAL
      ・cmd /c start /high "EXCEL.EXE"    ⇒ 起動せず
      ・cmd /c start "/high" "EXCEL.EXE"   ⇒ NORMAL

・/d"パス名" オプションを指定した場合の実行結果

    ・cmd /c start /d"C:Program Files\Microsoft Office\Office" /high "C:Program Files\Microsoft Office\Office\EXCEL.EXE"     ⇒ 起動せず
    ・cmd /c start /d"C:Program Files\Microsoft Office\Office" "/high" "C:Program Files\Microsoft Office\Office\EXCEL.EXE"    ⇒ NORMAL

    ・cmd /c start /d"C:Program Files\Microsoft Office\Office" /high C:\PROGRA~1\MICROS~1\OFFICE\EXCEL.EXE     ⇒ HIGH
    ・cmd /c start /d"C:Program Files\Microsoft Office\Office" "/high" C:\PROGRA~1\MICROS~1\OFFICE\EXCEL.EXE    ⇒ NORMAL
    ・cmd /c start /d"C:Program Files\Microsoft Office\Office" /high "C:\PROGRA~1\MICROS~1\OFFICE\EXCEL.EXE"    ⇒ 起動せず
    ・cmd /c start /d"C:Program Files\Microsoft Office\Office" "/high" "C:\PROGRA~1\MICROS~1\OFFICE\EXCEL.EXE"   ⇒ NORMAL

    ・cmd /c start /dC:\PROGRA~1\MICROS~1\OFFICE /high C:\PROGRA~1\MICROS~1\OFFICE\EXCEL.EXE     ⇒ HIGH
    ・cmd /c start /dC:\PROGRA~1\MICROS~1\OFFICE "/high" C:\PROGRA~1\MICROS~1\OFFICE\EXCEL.EXE    ⇒ NORMAL
    ・cmd /c start /dC:\PROGRA~1\MICROS~1\OFFICE /high "C:\PROGRA~1\MICROS~1\OFFICE\EXCEL.EXE"    ⇒ 起動せず
    ・cmd /c start /dC:\PROGRA~1\MICROS~1\OFFICE "/high" "C:\PROGRA~1\MICROS~1\OFFICE\EXCEL.EXE"   ⇒ NORMAL

    ・cmd /c start /d"C:Program Files\Microsoft Office\Office" /high EXCEL.EXE     ⇒ NORMAL
    ・cmd /c start /d"C:Program Files\Microsoft Office\Office" "/high" EXCEL.EXE    ⇒ NORMAL
    ・cmd /c start /d"C:Program Files\Microsoft Office\Office" /high "EXCEL.EXE"    ⇒ 起動せず
    ・cmd /c start /d"C:Program Files\Microsoft Office\Office" "/high" "EXCEL.EXE"   ⇒ NORMAL

    ・cmd /c start /dC:\PROGRA~1\MICROS~1\OFFICE /high EXCEL.EXE    ⇒ NORMAL
    ・cmd /c start /dC:\PROGRA~1\MICROS~1\OFFICE "/high" EXCEL.EXE   ⇒ NORMAL
    ・cmd /c start /dC:\PROGRA~1\MICROS~1\OFFICE /high "EXCEL.EXE"  ⇒ 起動せず
    ・cmd /c start /dC:\PROGRA~1\MICROS~1\OFFICE "/high" "EXCEL.EXE"  ⇒ NORMAL

  ・"C:Program Files\Microsoft Office\Office"にパスを通した上での実行結果
(カレントディレクトリを"C:Program Files\Microsoft Office\Office"に移動した
上での実行結果も同じ)
      ・cmd /c start /d"C:Program Files\Microsoft Office\Office" /high EXCEL.EXE   ⇒ HIGH
      ・cmd /c start /d"C:Program Files\Microsoft Office\Office" "/high" EXCEL.EXE  ⇒ NORMAL
      ・cmd /c start /d"C:Program Files\Microsoft Office\Office" /high "EXCEL.EXE"  ⇒ 起動せず
      ・cmd /c start /d"C:Program Files\Microsoft Office\Office" "/high" "EXCEL.EXE" ⇒ NORMAL

      ・cmd /c start /dC:\PROGRA~1\MICROS~1\OFFICE /high EXCEL.EXE   ⇒ HIGH
      ・cmd /c start /dC:\PROGRA~1\MICROS~1\OFFICE "/high" EXCEL.EXE ⇒ NORMAL
      ・cmd /c start /dC:\PROGRA~1\MICROS~1\OFFICE /high "EXCEL.EXE" ⇒ 起動せず
      ・cmd /c start /dC:\PROGRA~1\MICROS~1\OFFICE "/high" "EXCEL.EXE" ⇒ NORMAL

結論:
 ・プライオリティの指定を二重引用符( " )で括ると、プライオリティが設定さ
れない。
 ・実行ファイル名を二重引用符で括ると、プログラム自体が起動しない。
 ・プライオリティの指定と実行ファイル名の両方を二重引用符で括ると、何故か、
起動はするが、プライオリティが設定されない。
 ・実行ファイルがカレントディレクトリ直下にあるか、実行ファイルの置かれてい
るディレクトリにパスが通っていれば、プライオリティが設定される。
 ・プライオリティの指定と/d"パス名"オプションの指定は、どちらが先でも、結果
は変わらない。
 ・/dオプションのパス名は、ロングネーム形式でも8.3形式でも、結果は変わらな
い。

----↑ここまで↑----
実にお見事です。
特に
>パスを通した上での実行結果
を比較するってのはわたしゃ考えもしませんでしたので非っ常に参考になりました。
ウチのWindows2000でもWindowsXPでもメモ帳やINFOPATHが「HIGH」で起動してます。
ありがとうございます。




 

優先度の確認は
タスクマネージャ上の「プロセス」タブで「表示」→「列の選択」→「基本優先度」にチェックオンしてOKボタンをクリック。
「プロセス」タブで「メモ帳」の実行ファイルのプロセスを確認すると「基本優先度」が「高」と表示されているはず。
/LOW 優先度が「低」
/BELOWNORMAL 優先度「通常以下」
/NORMAL 優先度「通常」
/ABOVENORMAL 優先度「通常以上」
/HIGH 優先度「高」
/REALTIME 優先度「リアルタイム」 でもここを選択するのは危険・・・だとモノの本には書いてありますが理由までは教えてくれません。
関連記事
[ 2005/02/09 21:41 ] 速きゃええねん、速きゃ | TB(0) | CM(0)+ Edit +

コメントの投稿














管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://menushowdelay.blog13.fc2.com/tb.php/372-721e8f56