トップ回答者
Dissmiss Allした通知の再表示

質問
回答
-
データが残っていたら、これで復活するかもしれない
//C# コンソールアプリ using System; using System.Text; using System.IO; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { var dir = System.Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); dir = Path.Combine(dir, "Microsoft", "VisualStudio", "14.0", "Notifications"); //dir = @"E:\vs\Notifications"; if (!Directory.Exists(dir)) { Console.WriteLine("Notifications Directory Not Found"); return; } var backupDir = dir + DateTime.Now.ToString("yyyyMMddHHmmss"); Directory.CreateDirectory(backupDir); foreach (string s in Directory.GetFiles(dir)) { var bakupFile = Path.Combine(backupDir, Path.GetFileName(s)); System.IO.File.Copy(s, bakupFile); } foreach (string s in Directory.GetFiles(dir)) { byte[] bs; using (FileStream fs = new FileStream(s, FileMode.Open, FileAccess.ReadWrite)) { bs = new byte[fs.Length]; fs.Read(bs, 0, bs.Length); fs.Position = 0x39; System.IO.MemoryStream ms = new MemoryStream(); byte b; int i; while (true) { i = fs.ReadByte(); if (i == -1) { break; } b = (byte)i; if (b == 0) {//文字列の長さが不明なので終端っぽいところで切る ms.Position = ms.Position - 1; ms.WriteByte(0); break; } ms.WriteByte(b); } ms.Position = 0; var sr = new System.IO.StreamReader(ms, Encoding.UTF8); string description = sr.ReadToEnd(); Console.WriteLine(string.Empty.PadLeft(20, '-')); Console.WriteLine(System.IO.Path.GetFileName(s)); Console.WriteLine(description); fs.Position += 7; i = 0; while (i <= 0) { i = fs.ReadByte(); } if (i == 2 || i==5)// { //1:たぶん表示してる //2:たぶん削除してしまってる //5:たぶん無視にしてる fs.Position -= 1; fs.WriteByte(1); Console.WriteLine(i+"=>1"); } else { Console.WriteLine(i); } } } } } }
#2013はXMLなのに2015は変なバイナリになってるのはなんでだろう…個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)
- 回答としてマーク shinjism 2015年12月18日 10:21
すべての返信
-
データが残っていたら、これで復活するかもしれない
//C# コンソールアプリ using System; using System.Text; using System.IO; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { var dir = System.Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); dir = Path.Combine(dir, "Microsoft", "VisualStudio", "14.0", "Notifications"); //dir = @"E:\vs\Notifications"; if (!Directory.Exists(dir)) { Console.WriteLine("Notifications Directory Not Found"); return; } var backupDir = dir + DateTime.Now.ToString("yyyyMMddHHmmss"); Directory.CreateDirectory(backupDir); foreach (string s in Directory.GetFiles(dir)) { var bakupFile = Path.Combine(backupDir, Path.GetFileName(s)); System.IO.File.Copy(s, bakupFile); } foreach (string s in Directory.GetFiles(dir)) { byte[] bs; using (FileStream fs = new FileStream(s, FileMode.Open, FileAccess.ReadWrite)) { bs = new byte[fs.Length]; fs.Read(bs, 0, bs.Length); fs.Position = 0x39; System.IO.MemoryStream ms = new MemoryStream(); byte b; int i; while (true) { i = fs.ReadByte(); if (i == -1) { break; } b = (byte)i; if (b == 0) {//文字列の長さが不明なので終端っぽいところで切る ms.Position = ms.Position - 1; ms.WriteByte(0); break; } ms.WriteByte(b); } ms.Position = 0; var sr = new System.IO.StreamReader(ms, Encoding.UTF8); string description = sr.ReadToEnd(); Console.WriteLine(string.Empty.PadLeft(20, '-')); Console.WriteLine(System.IO.Path.GetFileName(s)); Console.WriteLine(description); fs.Position += 7; i = 0; while (i <= 0) { i = fs.ReadByte(); } if (i == 2 || i==5)// { //1:たぶん表示してる //2:たぶん削除してしまってる //5:たぶん無視にしてる fs.Position -= 1; fs.WriteByte(1); Console.WriteLine(i+"=>1"); } else { Console.WriteLine(i); } } } } } }
#2013はXMLなのに2015は変なバイナリになってるのはなんでだろう…個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)
- 回答としてマーク shinjism 2015年12月18日 10:21