昨日作った読み取り専用メディア上のxyzzyを起動するバッチファイルであるが、UNC 上にある場合に標準状態では(cmd.exe が)起動できないため動かない。
ということで WSH で起動するように JScript を書いておく。 JScriptもWSHもあまり触ってないので適当に。
var shell = WScript.CreateObject("Wscript.Shell"); var fs = WScript.CreateObject("Scripting.FileSystemObject"); var vardir = shell.Environment("PROCESS")("TMP") + "\\xyzzy"; if (! fs.FolderExists(vardir)) { fs.CreateFolder(vardir); } shell.Exec("xyzzy -image " + vardir + "\\xyzzy.dump " + "-config " + vardir);
まず Windows XP BOX に、Skype4COM 1.0.28.2 を入れる。 Skype4COM-1.0.28.2.zip をとってきて展開し、アーカイブの中の DLL を登録する。
regsvr32 Skype4COM.dll
次に以下のスクリプトを書いて、例えば setskypeavatar.js というファイルに保存する。
skype = WScript.CreateObject("Skype4COM.Skype"); skype.Settings.LoadAvatarFromFile("C:\avatar.png");
で、Skype を実行してログインしている状態でコマンドプロンプトから
start setskypeavatar.js
で実行する(あるいはエクスプローラ上から実行する)。Skype 側が「他のプログラムが Skype にアクセスしようとしています」というダイアログを表示するので連携を許可してあげると、アバタが avatar.png の画像に変更される。
細かい点気にしなけば簡単。
なお今回のように単純に Windows Script Host から API 接続すると、WScript.exe に対しての許可を与えなければならないので、その点は注意が必要。
ちなみに Skype for Linux では API にある「SET AVATAR」コマンドがまだ使えないので、同様のことが実現できなかった。
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。