none
Dissmiss Allした通知の再表示 RRS feed

  • 質問

  • お世話になります。
    Visual Studio Community 2015のNotificationsパネルについてお尋ね致します。

    このパネルの右上部、Settingsアイコン(歯車のアイコン)の左側に「Dissmiss All」とあり、
    ここを誤ってクリックしたために、これまでの通知が表示されなくなってしまいました。

    これらの通知をもう一度表示させてあげるにはどうしたら良いのでしょうか。
    ご教示の程、よろしくお願い致します。

    2015年12月17日 14:28

回答

  • データが残っていたら、これで復活するかもしれない

    //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
    2015年12月18日 3:32

すべての返信

  • フォーラム オペレーターの星 睦美です。
    _shinjism さん、投稿ありがとうございます。

    ただいまMSDN/TechNet フォーラムで、投稿された質問と回答がフォーラムのページで表示されない事象が発生しており、投稿の内容をほかのユーザーが参照することができない状況となっています。

    ご不便をおかけして申し訳ございませんがお待ちいただけますようにお願いいたします。


    フォーラム オペレーター 星 睦美 - MSDN Community Support

    2015年12月18日 1:23
  • データが残っていたら、これで復活するかもしれない

    //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
    2015年12月18日 3:32
  • gekkaさん、ありがとうございます!

    ご教示いただいたコードを試してみようと思いVisual Studioを起動したところ、通知が復活しておりました。
    いったい何が何やら・・・

    Visual Studioのメニューから再表示の設定ができると思っていたのですが、そういった機能は今のところ無いのでしょうね。
    また同じ現象が出たときには、このコードを参考にさせていただきます。

    ご回答いただき、ありがとうございました!

    2015年12月18日 10:21