【コラム】

ツールエキスパート

30 青い目をした姿三四郎 - X-Setup(6)

    大田万多夢  [2003/09/27]

    それでは、SDKの肝と言えるプラグイン開発ツール「Xteq X-Setup Alchemy」を使って、実際にプラグインを作成してみよう。今回はXteq Systemsによって提供されているプラグインを参考にリメイクを行った。ただし、あくまで作成方法解説のためのものであり、動作や効果を保障するものではないのでご注意いただきたい。

    作業はX-Setup Alchemyの左ペインで行う。右ペインはプレビュー画面となっている。

    ○UI作成と情報の入力

    [General]タブではプラグインの基本情報と、インタフェース設計を行う。次のように入力する。

    Plug-in name WinXP Boot Optimizer設定
    UI-path サンプル\ブート最適化
    Version 1.0
    Plug-in type Checkbox
    Count 2(スライダつまみをずらす)
    Text1 Boot Optimizer 有効
    Text2 Boot プリフェッチ 有効

    X-Setupのプラグインでは、8種類のUIアイテムを最大で5項目定義できる。ただしタイプの異なるアイテムを混在させることはできない。

    [Description]タブではプラグインの使い方を記入する。

    最初のオプションは、Windows XP付属のデフラグによる
    ブートの最適化を有効にする場合にONにします。
    2番目のオプションは、プリフェッチによるブート高速化を
    有効にする場合にONにします。

    [Information]タブの記入は必須ではないが、開発者情報やコメントを入力する。

    Author OTA Bantam
    Copyright MYCOM PC WEB
    Comments コラム解説用に作成しました
    Warning !!!動作未確認!!!
    (※Warningに何か記入するとプラグインが"system critical"属性を持つ)

    [Additional]タブでは、プラグインコード内で用いる定数や追加コメントを定義する。Constant-declarations for the Plug-inの欄に以下のように記入した。

    sP1="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction\Enable"
    sP2="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Prefetcher\BootFilesOptimized"

    ここでは、レジストリのパスを定数として定義した。

    ○プラグインコードの記述

    プラグイン情報や定数の準備が済んだら、Plug-in codeタブでプロシージャをコーディングしていくことになる。X-Setup plug-inでは、実行時のイベント毎にプロシージャが呼び出されるので、各イベントプロシージャ内に動作を記述すれば良い。

    まず、Event/SubからInitializeを選択して、以下の内容を入力する。

    if UCase(RegReadValue(sP1))="Y" then
    Call SetUIElement(1,true)
    end if

    if RegReadValue(sP2)=1 then
    Call setuielement(2,true)
    end if

    Initializeイベントはプラグイン読み込み時に発生する。レジストリ(含INI)から現在値を読み込む必要がある場合は、ここで処理を行う。例では、sP1とsP2で定義したレジストリパスの値を読み込み、その値に合わせてチェックボックスのチェック状態を指定している。

    次に、Applyイベントに切り替えて入力する。

    if GetUIElement(1)=true then
    Call RegWriteValue(sP1,"Y",1)
    else
    Call RegWriteValue(sP1,"N",1)
    end if

    if GetUIElement(2)=true then
    Call RegWriteValue(sP2,1,2)
    else
    Call RegWriteValue(sP2,0,2)
    end if

    Call Restart()

    ApplyイベントはApply Changesボタンをクリックした時に発生する。変更した設定を反映させる処理に用いる。例では、各チェックボックスの状態に応じたレジストリ値を書き込んでいる。最後のRestart関数では、設定変更の反映にシステム再起動を要することを示すフラグをセットしている。

    今回は使わないがその他のイベントとして、UIアイテム変更時に発生するCheckData、プラグイン終了時に発生するTerminateがある。用途に応じて使い分けよう。

    これで、プラグイン作成作業は終了である。File>SaveからXPLファイルに保存し、プラグインフォルダにコピーしてからX-SetupのDefault UIを起動してみよう。文法などにミスがなければ、作成したプラグインを読み込めるはずだ。

    以上でX-Setup SDKの解説を終える。より高度なプラグインを作成するには、付属ドキュメントやサンプルを参照してほしい。

    6回に及んで紹介したX-Setup。強力なツールであるとともに、「いじりがい」のあるツールでもあることが伝わったなら幸いである。なおタイトルは、Xteq Systems自身がX-Setupを評して用いた「Black Belt system tuning」から、黒帯をイメージしてつけたものである。

    Xteq Systems
    http://www.xteq.com/

    バックナンバー
    http://pcweb.mycom.co.jp/column/toolexp.html

    新着記事

    特設サイトの情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      マイナビニュースマガジン