2016-12-02 6 views
-1

のトースト通知でBalloonTipTitleが2回表示されるのはなぜでしょうか?今はC#アプリケーションでトーストのトップとボトムが表示されています。誰もが同じことを見ますか? 1周年前のWindows 10では、BalloonTipTitleはトーストの上部にのみ登場しました。 大したことではありませんが、それは愚かに見えます。 私はまだ写真を投稿できませんが、回答が得られたら、トーストビヘイビアの前後の写真をアップロードします。Windows 10周年記念(1607)

私は本当に質問ではなかったので、私はdownvotedを得ていると思う。

Windowsの10周年記念の上部にBalloonTipTitleを入れている、とアセンブリ:だから私は言い換えますAssemblyTitleAssemblyInfo.csから乾杯の下部にあります。

さまざまなバージョンのWindows 10および7でこれを管理するには、どのような方法が最適ですか?自分のアプリがトーストを引き起こしたことをユーザーに知らせてもらいたいが、情報を複製したくない。

ここにWindowsフォームアプリケーションのクイックコードを示します。あなたのソリューション名に一致するようにBalloonTipTitleを変更する場合は、冗長なタイトルわかります

static void Main() 
    { 
     NotifyIcon myNotifyIcon = new NotifyIcon(); 
     myNotifyIcon.BalloonTipIcon = ToolTipIcon.Warning; 
     myNotifyIcon.BalloonTipText = "This is a test toast"; 
     myNotifyIcon.BalloonTipTitle = "Toast Title"; 
     myNotifyIcon.Icon = Icon.ExtractAssociatedIcon(Assembly.GetExecutingAssembly().Location); 
     myNotifyIcon.Visible = true; 
     myNotifyIcon.ShowBalloonTip(10000); 

     ContextMenuStrip contextMenu = new ContextMenuStrip(); 
     ToolStripMenuItem menuItemExit = new ToolStripMenuItem(); 
     menuItemExit.Text = "Exit"; 
     contextMenu.Items.Add(menuItemExit); 
     menuItemExit.Click += delegate { myNotifyIcon.Visible = false; Application.Exit(); }; 

     myNotifyIcon.ContextMenuStrip = contextMenu; 

     System.Timers.Timer myTimer = new System.Timers.Timer(); 
     myTimer.Interval = 20000; 
     myTimer.Enabled = true; 
     myTimer.Elapsed += delegate { myNotifyIcon.ShowBalloonTip(10000); }; 

     Application.Run(); 
    } 
+0

いくつかのコードはどうですか?今のところ聞こえるように、これはOSの問題です。これは話題にはなりません。 – krillgar

答えて

0

をWindowsの10 14393を構築する以上の何か(アニバーサリー)のチェック後にCurrentBuildレジストリキーを確認することにしましたBalloonTipTitleを除外します。

bool AppNameInBaloon = false; 

    string BuildString = ReadHKLMValue(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion", "CurrentBuild"); 

    int CurrentBuild; 

    bool WasParsed = Int32.TryParse(BuildString, out CurrentBuild); 

    if (WasParsed) 
    { 
     if (CurrentBuild >= 14393) 
     { 
      AppNameInBaloon = true; 
     } 
    } 


private static string ReadHKLMValue(string regPath, string value) 
    { 
     RegistryKey localKey; 

     if (Environment.Is64BitOperatingSystem) 
     { 
      localKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64); 
     } 
     else 
     { 
      localKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32); 
     } 

     string keyValue; 

     try 
     { 
      keyValue = localKey.OpenSubKey(regPath).GetValue(value).ToString(); 
      return keyValue; 
     } 
     catch 
     { 
      keyValue = ""; 
     } 

     return keyValue; 
    } 
関連する問題