2007年02月15日

digg labのBigSpyをスクリーンセーバ風に利用する方法 このエントリーをはてなブックマークに追加

こんにちは、室田日出男です(嘘です)。

digg labs に最近アップされた digg labs / bigspy がかなりイケてる。
リアルタイムでdiggっている様子をFlashでどんどん表示していくだけのサイトなのだが、結構みていると面白いっす。
で、これはナニカに似ているなと思ったら、スクリーンセーバに似ているのではないかと思ったわけである。で、「これをスクリーンセーバーにしてみよう」と何の脈絡もなく思ったのだ。とはいえ、そもそもスクリーンセーバってどーやって作ったらいいのかもわかんなくて検索してみたら、以下のことがわかった。
・スクリーンセーバは普通、*.scrとかっていう拡張子になっている
・*.scrの実態はexeファイルだったりする。

ふむふむ。
exeってことはWindowsアプリケーションってことか?
でも、これしきのことで、Visual Cなどでプログラミングをするわけもなく(っていうか、そもそも持ってない)何か簡単な方法はないかと思い調べると、素晴らしいプログラムを見つけた。

MakeExe
VBScript/JScriptを素早く・簡単にExeファイルにする

うーむ。これだ。
ってことで以下のようにすればできるっぽい。

1.下記のようなVBScriptをテキストエディタで作成し「digg_saver.vbs」として保存する。(VBScriptのひな型は VBScript Tips (Tips0156):[全画面表示する] を参考にした)
Option Explicit
On Error Resume Next
Dim strUrl ' 表示するページ
Dim objIE ' IE オブジェクト

strUrl = "http://ryouchi.up.seesaa.net/scr/index.html"
Set objIE = WScript.CreateObject("InternetExplorer.Application")
If Err.Number = 0 Then
objIE.Navigate strUrl
objIE.Visible = false
' 全画面設定
objIE.FullScreen = True
objIE.AddressBar = false ' アドレスバー
objIE.MenuBar = false ' メニューバー
objIE.StatusBar = false ' ステータスバー
objIE.ToolBar = false ' ツールバー
objIE.Visible = true
Else
WScript.Echo "エラー:" & Err.Description
End If
Set objIE = Nothing

上記内容は何をしているかというと、指定されたURLを「アドレスバー」「メニューバー」「ステータスバー」「ツールバー」を非表示にし、Internet Explorerで全画面表示するVBScriptである。strUrlで指定されたURLは親フレームのHTMLであり、フレーム上部は閉じるボタンを表示するHTML を指定し、フレーム下部には digg labs / bigspy を指定している。念のためVBScript単体で実行して期待した結果が得られているかどうかを確認する。
2. 1.のVBScriptが期待したとおりに動作していれば MakeExe をダウンロードして展開する。
3. 先ほど作成した digg_saver.vbs を MakeExe を展開したフォルダ内の makewin.exe にドラッグ&ドロップする。
4. そうすると digg_saver.vbs を保存しているフォルダと同じフォルダに digg_saver.exe というファイルができている。
5. digg_saver.exe のファイル名を digg_saver.scr に変更する。(ここポイント
6. C:\WINDOWS\SYSTEM32\ フォルダの直下にできあがった digg_saver.scr をコピーする。
7. デスクトップのプロパティを選択し、「スクリーンセーバー」のタブを選択する。
8. スクリーンセーバを選択するプルダウンメニューに「digg_saver」が表示されるので、選択し、適用を押し、OKボタンを押してデスクトッププロパティを閉じる

この手順で多分よいはず。

なお、「スクリーンセーバ風」と書いたのは理由がある。通常のスクリーンセーバではスクリーンセーバ起動中に、マウスやキーボードの入力イベントがあると、スクリーンセーバを解除してデスクトップ画面に戻るはずだが、この方法だと、あくまでもInternet Explorerで指定サイトを全画面表示しているだけなので、入力イベントを拾ってデスクトップに復帰するよーな機能はないっす。そのため、わざわざフレームを切って閉じるボタンを追加したというわけです。

今回のりょーちの方法ではいちいちフレームを作成したりしたので面倒かもしれないが、strUrlで指定するHTMLファイルを別のサイトを指定したり、更にフレームを分割したりすることにより、いろいろ工夫できそうである。

「こんなこともできるよ」「こんなの作った」ってのがありましたら是非教えてください。
よろしくです。
posted by りょーち | Comment(0) | TrackBack(0) | Web周辺技術
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: