2006 . 11 . 30

BgInfo -基本操作と使用例-

BgInfo は様々な情報をデスクトップに表示するプログラムです。 主にWindowsの開発者や管理者向けに、軽量で小回りの利くプログラムを多く公開しているサイトSysinternals.comの中で公開されています。
マイクロソフトに買収されてからはサイトも一新され見やすくなった上、プログラム本体のメンテナンスも頻繁にされるようになったようです。

 


今回紹介するBgInfoは日本語圏での認知度は低いものの、検索でのヒット数を見る限り海外でのユーザーは決して少なくないことが分かります。
このプログラムは開発者や管理者好みの一見地味なプログラムですが、機能は実にパワフルで、活用の仕方によってはいろいろな用途に使える可能性を秘めています。

 

デスクトップ上に情報表示するプログラムは多く存在しますが、これらはプログラムがリアルタイムで表示させている訳で、プログラムを終了してしまえば当然表示もされなくなります。
BgInfoの最大のポイントは、情報(テキスト)をビットマップ画像として壁紙に合成し、それを新たな壁紙として適用してしまうところです。プログラムが起動しているのは合成する瞬間だけなので、それ以外リソースは一切消費しません。

 

さて、前置きはこれぐらいにして、基本的な操作方法について概要を説明します。
なお、以下の説明には含まれない項目や機能もあるので、別途HELPを参照してください。





  • 基本画面

 

ダウンロードした後、アーカイブを解凍するとプログラム本体が現れます。インストーラーはありませんので、プログラムフォルダなどに置いてプログラムを実行します。初回のみライセンスに関する確認ダイアログが現れた後、設定画面が現れます。

この時、右上のカウントダウン表示されるボタンをクリックしないと、10秒後に終了するようになっているのでクリックします。

 

 

 

 

左側は編集画面で、ワードパッドとほぼ同じ操作感で文字列入力ができます。ここに入力した内容がデスクトップ上に反映されるわけです。
コロン以前はただのラベルなのであってもなくてもかまいませんし、自由な文字列が入力できます。文字は一文字単位でフォント名、大きさ、字体、色が指定でき、インデントの位置や向きも指定することができます。<>の中の文字列が実際の情報の変数にあたり、右側 [Fields] 欄から挿入して使います。

 

  • [Background] ボタンでは背景画像を指定できます。通常は現在使用の壁紙になっています。

  • [Position] ボタンでは表示位置を指定します。また、行幅の調整やマルチモニターの設定もできます。

  • [Desktops] ボタンでは、内容変更を個別に行うかどうかを指定します。

  • [Preview] ボタンでは、実際にデスクトップ上でプレビューさせることができます。

  • [Apply] または、[OK] で設定が適用されます。この時、特に「名前の付けて保存」しない場合はそれがデフォルト設定として保存されます。

  • [ Costum ] ボタンをクリックすると、ユーザー定義の追加・編集ダイアログが現れます。

 

 

[New] ボタンをクリックして追加するユーザー定義に名前を付けます。(使用できない文字があるので注意)追加するタイプを選んで [ Browse ] をクリックすると、各選択ダイアログが出るので目的のものを指定します。

 





 

  • ユーザー定義の種類

    • Environment variable
      環境変数の値を表示
      右の指定画面より選択できます。

     

    • Registry value
      任意のレジストリ値を表示。下の画面でレジストリのアドレスを指定します。

     

     

     

    • VB Script
      指定したVBスクリプトのファイルを読み込み、表示に反映させることができます。
      (なお、通常のVBSとは若干違う)

    • WMI Query
      Windowsの管理用インターフェイスであるWMIを利用した値を取得できます。
      (パフォーマンスモニターで測定できる値と同様)






    • Version information for a file
      指定したファイルのバージョン情報

    • Time stamp of a file
      指定したファイルの作成日時

    • Contents of a file
      指定したファイルの内容

     





  • メニュー

    • File
      open :設定ファイルを開く
      save as :設定ファイルを保存(名前を付けて保存)
      Reset Default Settings :デフォルトの設定をリセット
      Database :データベースに記録する(XLS, .MDB or .TXT file, SQL )
    • Bitmap
      出力するビットマップのビット数を指定
      Match Displayでディスプレイの設定に合わす
      Locationでは出力先を指定
    • Edit
      文字列編集
      Insert Imageで画像を挿入することができる ( bmp, jpg, gif )
      (データサイズに制限があり、大きな画像はエラーになる)
    • Format
      文字の字体、色、位置、などの指定

 





  • コマンドライン・オプション
    これらのオプションを付け加えて実行することによって、特別な動作をします。
    • /timer :タイムアウトの時間を指定(0にすれば起動と同時に更新される)
    • /popup :設定内容をポップアップウィンドウに表示する
    • /taskbar :タスクトレイに格納する
    • /all :変更を全ユーザーを対象にする

    (例) "プログラムのパス\Bginfo.exe" "設定ファイルのパス\xxx.bgi" /timer:0
    (設定ファイルの指定を省略した場合デフォルト設定がその対象になります)

 





  • 実行方法

    定期的な実行方法としては、スタートアップに登録したりタスクスケジューラを利用するのが一般的です。登録の際、上のようなオプション(/timer:0)を付けておけば、いちいち画面が現れなくてよいでしょう。

     なお、タスクスケジューラではうまく実行できないケースがあるようで、そのことに関連した話題がフォーラムでも取り上げられていましたが、それでも解決しない場合があります。
    実際、私もタスクスケジューラではプログラムは起動するものの、内容が更新されないという問題がありました。
    そこで、Rainmeter を利用して定期的に実行することにしました。
    以下のコード(スキン)は1時間ごとに BgInfo にたいして起動-内容更新のコマンドを送ります。

;***********************************************************
;run_BgInfo
;***********************************************************
[Variables]
CURRENT="C:\Program Files\BgInfo\"
REFRESH=3600
;===========================================================
[MeasureVBS]
Measure=Calc
Formula=Counter % #REFRESH#
IfAboveValue=1
IfAboveAction=!execute ["#CURRENT#BgInfo.exe" /Timer:0]
[MeterDummy]
Meter=STRING

 

このコード(スキン)を使用するには、 Ranimeter のスキンフォルダに適当な名前を付けて「.ini 」ファイルで保存してください。 CURRENT でプログラムのパスを、REFRESH で更新間隔(秒)を設定できます。 また、このスキンを適用した状態で Rainmeter をスタートアップに登録しておけば便利でしょう。


Rainmeter の基本的な操作が分からない方はこちらのページは参考に。

 





  • 使用例   -いろいろな情報を表示させる-

  • システム情報を表示(標準定義から)

  • PCの情報を表示(標準定義から)

  • 自動起動プログラムを表示(WMI Query)

  • 起動中のプロセス名を表示(WMI Query)

  • RSSを表示(VB Script)       

  • 指定した画像を表示






  • スクリプトについて

    BgInfoでもっとも強力と言える機能が、VB Scriptに対応していると言う点です。これによりスクリプトしだいで、あらゆる情報が表示できることになります。

    以下のサンプルコードは asahi.comRSS から、先頭10行の見出しを表示するスクリプトです。

 

xmlFile = "http://www3.asahi.com/rss/index.rdf"
Set xmlDoc = CreateObject("Microsoft.XMLDOM")
xmlDoc.async = False
returnCode = xmlDoc.Load(xmlFile)
If returnCode = False Then
    MsgBox("読み込みエラー")
    WScript.Quit()
End If
Set titleNodes = xmlDoc.selectNodes("//item/title")
line = ""
itemNumber = 10
For i = 0 To itemNumber
    line = line & titleNodes(i).text & vbCrLf
Next
Echo(line)

 

使用方法は、このコードをコピーして適当な名前を付けて「?.vbs 」と保存してください。次にBgInfo画面の [ Costum ] >> [ New ] と 進み Define New Field から適当な定義名を付けてから VB Script を選び、先ほど保存したスクリプトファイルを指定します。次に、最初の画面の [ fields ] 欄に戻ると、ユーザー定義が追加されているので、それを編集画面側に挿入して完了です。

 

なお、ごく標準的な RSS からタイトル(見出し)を表示する用途で使用する分には、このコードで表示可能だと思います。1行目 xmlFile で RSS の URL を指定し、 12行目 itemNumber でタイトル(見出し)数を指定します。

実際の数より多いタイトル数を指定するとエラーになるので注意してください。

 

[ 追記 ]
2006/12/08 スクリプト追加