スクリプトをもっと詳しく

背景画像で遊ぶ


 本稿は、完全に「遊び目的」だけであり、作業効率に全く寄与しない記事です。

 Ver.5.5.0.0で、オプション画面から背景画像を指定できるようになりました。
 が、この設定って、OKボタンを押しても反映されません。
 そうです、要アプリケーションの再起動なんですよ。
 メンドくさいですよねー

 というわけで、もっと手軽に遊べるモノを作ってみたいと思います。



 即時反映させるには、スクリプトを使わなくてはなりません。
 ただ、結構いろんなことができるので、このスクリプト機能を使って遊んでみます。

 一応ナニが書いてあるのかさっぱりだと残念なので、ヘルプのスクリプトのページを別のタブあたりで開いておいた方が良いかもしれません。
その他のスクリプトコマンド
スクリプトの制御構文
置換マクロリファレンス

 今回のキモは、「その他スクリプトコマンド」のページの下の方にある「BackgroundImage」というコマンドがメインになります。
 これを使います。

 まず、スクリプト作りましょうか。
 ランチャーの空欄で右クリック→新規作成→新しいアイテム
 作ったスクリプトを選択→編集→エディタで編集、と進めます。
 ファイルの中身もゴチャゴチャ記載されてますが、所詮テンプレートなんで今回は全部消した所からスタートです。
※スクリプトは文字コードがUNICODEじゃないといけないので、テキストエディターの新規作成ではない方法から開始しています。



 というわけスクリプトの具体例です。
 goto文の上限の5階層以下まで探索して、画像ファイルをランダムで取得し、右下に縮小して表示させています。
 Randomってキーワードは、指定ディレクトリのファイルをランダムで取得するってモノです。

 マスコットキャラクター的に使ってもらえると良いかなって感じですね。

var $背景画像$ = Random,C:\(背景用の画像の格納指定あるディレクトリ)
var $IsFile$
RETRY:
if $背景画像$ ==
  //空のディレクトリだったのでスクリプト中断!
  exit
endif
$IsFile$ = IsFile,$背景画像$
if $IsFile$ == 0
  //取得したものがディレクトリだったので、更に下位階層を探索する
  $背景画像$ = Random,$背景画像$
  goto RETRY
endif
BackgroundImage=All,4,200,200,$背景画像$

 このスクリプト、オプションのイベントコマンドの画面で登録してやります。
 10分おきに起動するスクリプトにセットしておけば、自動でランダムに背景画像が切り替わるというわけです。
 注意するのは、このイベントコマンドで実行できるスクリプトって、スクリプトの格納してある専用のフォルダに置いておかないと実行できないので、スクリプトファイルをコピーないし、移動しておいてください。
 (スクリプトディレクトリは「ユーザーディレクトリ¥Script¥」です)


 あーそだ、ついでに紹介しておきますが、ほぼ同様のスクリプトでWavファイルがあるフォルダーを走査して「PlayWav」コマンドを使い、起動時のイベントで
 「おにいちゃん、また会えたね」
 「おかえりなさいませ、ご主人様」
 「はぁっじめるよぉぅ!」
 といったサウンドをランダムに鳴らせることで、飽きずに萌えられるという事例もあるようです。
 もちろん仕事場とかでやっちゃうと、その後の人生が終了する場合もあるかと思われますので、ご利用は自己判断でお願いします。



 あと遊び要素としてはそうですね、背景画像指定を画像ビューアーっぽく使ってみましょう。
 選択しているファイルの先頭の1枚を背景画像に指定するスクリプトです。
 ただこれ画像以外を指定すると表示されないので、if文などを使って拡張子を判別したりして、もっとお利口なスクリプトにすると良いかもしれませんね。

for
  BackgroundImage=Now,0,50,50,?selfile?
  break
next



 あともう1個作ってもらったものですが、紹介しておきます。
 選択ファイルでスライドショーを行います。

for
  BackgroundImage=Now,0,50,50,?selfile?
  Wait=1000
next

 なお、このスクリプトを実行するときは、オプションのここ

 スライドショーの最中に、エディタ起動とか、ビューアー起動とかできなくなるの嫌すぎますので、この画面で同時実行するスクリプトの数を増やしておくと、そもそもバックグラウンドで動作してくれますし操作不能になりません。






 あと、β版開発時に意見を述べてくれた方への恩返し用のスクリプトを参考例として記載しておきます。
 これらは、ほぼ恩返し目的でVer.5.5.5.0で追加されたイベントコマンドなわけで、意見募集の呼びかけに応えてくれただけで明らかにエコヒイキしてます。
 せっかく意見表明してくれたモノは応えたいですし、だってほら金銭的な負担が無いというのは会計処理もありませんから、「黙ってる人は存在を認識できない」=「居ないのと一緒」なんですよ。
 組織だった動きができるわけでもなく、限られたサポートなんであしからず。



●プレビューバーの代わりに使う
 イベントスクリプトの「プレビュー表示発生」に登録します。
 そうすると、選択しているファイルが画像であれば、プレビューのように画面中央に表示されます。

for
  BackgroundImage=Now,0,50,50,?selfile?
  break
next


●ドライブ毎に背景画像を切り替える。
 イベントスクリプトの「リストの表示が完了」に登録します。
 応用で、任意のフォルダーごとに切り替えるという事も簡単にできそうですね。
 また、PC間の持ち運びをするということであれば、画像のパスに環境変数などの置換マクロを使うと良いでしょう。

if ?Drive? == C:
  BackgroundImage=Now,4,200,200,c:\img\cドライブ用の絵.bmp
  exit
endif
if ?Drive? == D:
  BackgroundImage=Now,4,200,200,c:\img\dドライブ用の絵.bmp
  exit
endif
if ?Drive? == E:
  BackgroundImage=Now,4,200,200,c:\img\eドライブ用の絵.bmp
  exit
endif
if ?Drive? == F:
  BackgroundImage=Now,4,200,200,c:\img\fドライブ用の絵.bmp
  exit
endif
if ?Drive? == G:
  BackgroundImage=Now,4,200,200,c:\img\gドライブ用の絵.bmp
  exit
endif
if ?Drive? == H:
  BackgroundImage=Now,4,200,200,c:\img\hドライブ用の絵.bmp
  exit
endif
if ?Drive? == I:
  BackgroundImage=Now,4,200,200,c:\img\iドライブ用の絵.bmp
  exit
endif
if ?Drive? == J:
  BackgroundImage=Now,4,200,200,c:\img\jドライブ用の絵.bmp
  exit
endif
if ?Drive? == K:
  BackgroundImage=Now,4,200,200,c:\img\kドライブ用の絵.bmp
  exit
endif
if ?Drive? == L:
  BackgroundImage=Now,4,200,200,c:\img\lドライブ用の絵.bmp
  exit
endif
//仮想ディレクトリや、未定義のドライブなら画像を消す
BackgroundImage=Now