cocolog:79940558
Bgcall でランダムに壁紙を変えてたんだけど、何が選ばれてるか記録したくなって VBScript でログ取りながらランダムに壁紙を変えるスクリプトを書いた。 (JRF 9852)
JRF 2014年6月17日 (火)
でも、ライセンスがなぁ…。いろいろなところを参考にしながらだけど、「パブリック ドメイン」って言っていいレベルに留まっていると思う。↓に置いておく。エンコーディングは私には珍しく Shift-JIS なので注意!
《WallWrapperChanger.vbs》
http://jrf.cocolog-nifty.com/archive/collabo/meme/WallWrapperChanger.vbs
JRF2014/6/177906
他の Windows アプリと違って、ソースいじったりしない限り動かないし、私がどうやって Log を取ったかの参考用にしかならないと思う。Windows 7 以外だとどう動くのかは確認していない。
いちおう動き方も説明すると、MyDocuments の wall_wrapper_list.txt で、壁紙の1ファイル名を1行に羅列して、やはり MyDocuments 下の wall_wrapper.log ランダムに選択されたものが何かをログに取っていく…というふうになる。
JRF2014/6/173873
ただし、Windows 7 のレジストリ設定の限界から、起動時にパッと変えるというのはできなくて、「次の起動時」にどれを使うかをログに残すことしかできない。
JRF2014/6/176693
このあたり、私が使ってたアプリケーション「Bgcall」ではちゃんと、起動時に入れ替えてる感じだったから、私の使った方法の限界だと思う。あと XP だとちゃんと「そのとき」に替える方法もあるっぽいんだけど、Windows 7 だとダメ(ときたまちゃんと替わる)なんで、そこはコメントアウトして使っている。私の↑のものは十分テストしてないので、「もしも」のときのために復元ポイントを作っておいたほうがいい。私は Bgcall もインストールしておいて、「スタートアップ」で Bgcall の替わりに呼び出すようにしている。
JRF2014/6/178615
《Bgcall - Vieas Web》
http://www.vieas.com/software/bgcall.html
JRF2014/6/172133
私、VBScript をほとんどわかってなくて、↓がすごい役に立った。
《VBScript 基礎文法最速マスター - CX's VBScript Diary - VBScript グループ》
http://vbscript.g.hatena.ne.jp/cx20/20100131/1264906231
JRF2014/6/170913
上の Bgcall を使わないなら、基本は↓を参考にして、私のは参考にせず、自分で組めば、私のと同じレベルにはすぐ達すると思う。
《WallPaper.VBSの詳細情報 : Vector ソフトを探す!》
http://www.vector.co.jp/soft/winnt/util/se405242.html
JRF2014/6/174821
私は、VBScript に関してはエラー処理とかもよくわかってなくて、そのあたりもネットで探してきたののコピペを元に作ってる。そういうコピペの「キメラ」みたいなものなんで、「自作」というよりは「コラボ」に近い。WallPaper.VBS の作者の吉岡氏はフリーソフトウェアと書いてるので、一番上の私が作ったのも「パブリックドメイン」というよりは「フリーソフトウェア」とすべきなのかもしれない。
JRF2014/6/175614
いつもの Cygwin の bash から VBS はすぐには呼べなくて cscript.exe を介さねばならないのは↓で知ったが、結局は DOS 窓を使ったほうが便利だった。
《[Q&A] cygwin上でvbscirptを実行する方法 【OKWave】》
http://okwave.jp/qa/q6366152.html
JRF2014/6/178285
VBScript の関数の詳細は、もちろん、MSDN でオープンになってるのも参考にしたけど、↓が役に立った。
《VBScript関数リファレンス》
http://www.kanaya440.com/contents/script/
JRF2014/6/172551
起動時にパッと変えるのは、Windows 7 では XP ほどうまくいかないという話は↓に出てる。
《vbscript - Change Wallpaper in Windows 7 - Stack Overflow》
http://stackoverflow.com/questions/5214647/change-wallpaper-in-windows-7
JRF2014/6/176108
↓次回のは替えれるという確信はここでもらった。
《Hey, Scripting Guy!デスクトップの壁紙を定義済みの 6 つのうちの 1 つに変更する方法はありますか》
http://gallery.technet.microsoft.com/scriptcenter/82731212-c16a-4cae-be3b-3332cc91d6b6
JRF2014/6/173857
MyDocuments の位置を取ってくるのは↓を参考にした。
《VBAでマイドキュメントやデスクトップ等の特殊フォルダーを取得する - まりふのひと》
http://d.hatena.ne.jp/ogohnohito/20130526/p1
JRF2014/6/179605
typo 「wall_wrapper.log ランダムに」→「wall_wrapper.log にランダムに」。
JRF2014/6/178735
……。
更新:バージョン 0.02。wall_wrapper_list.txt 中のファイル名が相対パスのときに、ソース直書きの変数で設定しておけば、補完できるようにした。
JRF2014/6/185527
……。
更新:バージョン 0.03。0.02 のコメント後、すぐに失敗に気づく。論理演算ミスを修正。影響はほぼないはず。
JRF2014/6/186481
更新:バージョン 0.04。コードは変わってない。このページへのリンクをいちおう書いておいた。
JRF2014/6/215869
やりたかったことは直近の↓に書いた。
[cocolog:79931287]
>
「シチョーリツ」の要素を考えると、壁紙に実際何を使用したかを公開する必要も認めねばならないのだろうか?
ランダムに表示された壁紙が何であったかを記録するようなアプリを作るべきなのか?
<
JRF2014/6/177985