Live Messengerの表示アイコンはどこに保存されているの? という話題があったのでフォルダをさがしてみた。というか前も調べたことがあったので、すぐ見つける予定が結構さがした。
まず、フォルダは以下。フォルダ名がMessengerなんですよねー。MSN Messengerをさがして見つからねぇ! 状態に陥りました。[User Name]はユーザ名、[Your Account]にはLive IDのアカウント(メールアドレス)がはいります。
- Windows Vista: C:\Users\[User Name]\AppData\Local\Microsoft\Messenger\[Your Account]\ObjectStore\UserTile
- Windows XP: C:\Documents and Settings\[User Name]\Local Settings\Application Data\Microsoft\Messenger\[Your Account]\ObjectStore\UserTile
このフォルダの中にあるファイルのうち、拡張子がdt2のものが画像ファイルです。拡張子が変えてあるだけなのでpngなどに変換すると画像を見ることができます。
ひとつひとつ拡張子を変更するのが、めんどいのでコードを書いた。
Dim picturesPath = path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Microsoft\Messenger")
Dim tempPath = Path.Combine(System.IO.Path.GetTempPath, "Live Messenger Pictures")
With My.Computer.FileSystem
.CreateDirectory(tempPath)
For Each f In .FindInFiles(picturesPath, "", True, FileIO.SearchOption.SearchAllSubDirectories)
If f.EndsWith(".dt2") AndAlso f.IndexOf("ObjectStore\UserTile") > 0 Then
.CopyFile(f, Path.Combine(tempPath, Path.GetFileName(f) & ".png"), True)
End If
Next
End With
System.Diagnostics.Process.Start(tempPath)
My.Computer.FileSystem.FindInFilesを使ってみたけど、引数のファイルに含まれる文字列、これ拡張子の文字を指定できないっぽいかな? 全部取得して含まれている文字でふるいにかけた。コードは一律、pngの拡張子を付けている。実際はPNG画像でなくても、表示できる画像であればエクスプローラで表示してくれる。
結果。46個のファイル?
