画像関係の部分がちょっと分かった。前のとあわせるとこんな風になる。
// Artworkを保存するディレクトリ
var fileDir = "c:\\itunes";
// Artworkが何にも無い時に表示する画像
var defaultFile = "C:\\Documents and Settings\\NANTOKA\\My Documents\\My Skype Pictures\\Skype.png";
var skype = WScript.CreateObject("Skype4Com.Skype");
var it = WScript.CreateObject("iTunes.Application");
WScript.ConnectObject(it, "ITEvent_");
var me = skype.CurrentUserProfile;
while(true) WScript.Sleep(1000);
function ITEvent_OnPlayerPlayEvent(track){
changeAvatar(track, fileDir);
with(track)
var text = [Name,Artist].join(" / ");
if(me.MoodText != text){
me.MoodText = text;
print(me.MoodText);
}
}
function changeAvatar(track, path){
if(track.Artwork.Count <= 0){ skype.Settings.Avatar = defaultFile; return; }
var format = imgFormat(track.Artwork.Item(1).Format);
if(!format){ skype.Settings.Avatar = defaultFile; return; }
var file = path + "\\artwork." + format;
track.Artwork.Item(1).SaveArtworkToFile(file);
skype.Settings.Avatar = file;
}
function imgFormat(n){
switch(n){
case 1: return "jpg";
case 2: return "png";
case 3: return "bmp";
default: return false;
}
}
function print(s){ WScript.Echo(s); }
もっと何とかしたいときはchangeAvatarあたりを変えればよさそうです。
var file = [path,"\\",track.Album,".",format].join("");
とか。なんかもう適当。
1.001-1の計算。Excelはこんな風。
var xlApp = WScript.CreateObject("Excel.Application");
var xl = WScript.CreateObject("Excel.Sheet");
var sheet = xl.Application.Workbooks(1).Worksheets(1);
sheet.Cells(1,1).Value = 1.001-1;
sheet.Cells(2,1).Value = "=1.001-1";
| JScript | 0.0009999999999998898 |
|---|---|
| SpiderMonkey | 0.0009999999999998899 |
| Excel | 0.0009999999999998898 |
JScriptとExcelは結果が同じかよ。試しにExcelに手入力で入れてみたけどやっぱ同じ。なんてこった、Excelじゃ小数点以下15か20桁ぐらいで誤差が生じてしまうじゃないか。Excel使えねえ!
夏ごろに何故か「サッカーWCで日本が負けたのは電通のせい」というのを聞いたことがあった。なんか、電通が日本のゴールデンタイムに時間を合わせるために、試合が昼間になって暑かったんだって。へえ。サッカーなんて知らんがな。こういうこと言われたりしてんでしょうかねえ。