MyDefragで自動実行されるデフラグの優先度を下げる方法

MyDefragをインストールするとWindowsのタスクスケジューラに自動実行タスクが登録されます。このタスクが開始されるとパソコンの反応速度が下がります。そこで優先度を下げることにしました。

MyDefragの優先度を変更するには、実行されるスクリプトファイルの中で次のように優先度を指定します。

ProcessPriority(引数)

引数には次のうちの一つを指定します (MyDefragのヘルプより)。

High CPU優先度高。ほとんどすべてのCPU時間を使用するため、MyDefragではお勧めしません。
AboveNormal CPU優先度はNormalとHighの間です。
Normal すべてのWindowsプログラムの標準のCPU優先度です。これはMyDefragのデフォルト値です。
BelowNormal CPU優先度はNormalとLowの間です。
Low CPU優先度低。この設定ではMyDefragはシステムがアイドルの時だけ実行されます。これはMyDefragスクリーンセーバーのデフォルト値です (Windowsはすべてのスクリーンセーバーをこの優先度クラスで実行します)。
Background バックグラウンド優先度です。これはリソース(I/O)スケジューリングとCPU優先度を低にします。この設定によって他のプログラムはより高速にディスクにアクセスできるようになります。この設定はWindows 2000/2003/XPではサポートされていません。

というわけで、MyDefragの優先度を下げるには、Windows 2000/2003/XPでは「ProcessPriority(Low)」、Vista以上では「ProcessPriority(Background)」を指定します。指定する場所はMyDefragのスクリプトの先頭付近の適当な場所です。

たとえば自動的にインストールされるタスク「MyDefrag vX.X.X Daily」ではMyDefragをインストールしたディレクトリのScriptsフォルダにあるAutomaticDaily.MyDファイルが実行されるため、そのファイルに以下のように記述します。

...

/* Automatically exit when the script has finished. This script is designed to
   be run via the task scheduler, so it must exit automatically. */
WhenFinished(exit)

/* If another instance of MyDefrag is already running then exit. */
OtherInstances(exit)

/* Write the header to the logfile. See the "Settings.MyD" file for the
   definition of the "LogHeader" string. */
WriteLogfile("MyDefrag.log","LogHeader")

/* Use low priority I/O (Windows Vista and above only) */
ProcessPriority(Background)

...

これでスケジュールされたMyDefragタスクの実行時にバックグラウンド優先度で実行されます。