2

我正在尝试制作一个系统托盘应用程序,该应用程序在启动时加载并每 2 小时弹出一个气球文本。如果有这样的例子,那就太好了。

我正在寻找使用。

WPF、定时器、委托、事件

我不确定这些是否足够,或者我还需要更多东西。

提前致谢。

4

3 回答 3

1

首先,您需要在系统启动时启动应用程序:假设我有一个复选框,如果激活了此复选框,我想在 Windows 启动时启动我的应用程序:

RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
private void checkBox_autoStart_Checked(object sender, RoutedEventArgs e)
  {
    rkApp.SetValue("Your Application Name Here",Assembly.GetExecutingAssembly().Location);
  }

以及关于您执行以下操作的停用:

private void checkBox_autoStart_Unchecked(object sender, RoutedEventArgs e)
    {
        rkApp.DeleteValue("Your Application Name Here", false);
    }

ps:您的应用程序名称将显示在任务管理器中,就像您在那里写的那样

关于使用 notify Icon ,实际上 WPF 不支持现成的,因此您要么使用 Windows Forms Notify Icon ,要么使用 codeproject.com 的另一个答案中提到的那个

如果你想使用已经存在于 windows 窗体中的那个,你必须在你的项目中添加对 System.Windows.Forms 的引用

于 2010-11-23T21:53:18.327 回答
1

我想你会很好的。实际上,您需要的只是一个 NotifyIcon 和一个 Timer。我以这种方式完成了类似的工作,除了我没有使用 WPF(我宁愿使用“经典”窗口设计器)。

让您的应用程序在启动时启动的最简单方法可能是将其放入“开始”菜单的“启动”文件夹中,实际上不需要使用注册表。

于 2010-11-23T21:56:23.463 回答
0

Windows 服务可能是在后台运行的最佳选择,但从服务访问 GUI 可能会很棘手(我认为这不是微不足道的)。

对于 WPF 桌面应用程序执行托盘通知,请参阅此项目的演示和源代码: http: //www.codeproject.com/KB/WPF/WPF_xaml_taskbar_window.aspx

要每 2 小时收到一次通知,您可以使用 DispatcherTimer: http ://social.msdn.microsoft.com/Forums/en/wpf/thread/aaffea95-e735-492d-bd8a-2fdf7099a936

于 2010-11-23T21:51:38.780 回答