我正在尝试制作一个在启动时加载的系统托盘应用程序,并每2小时弹出一个气球文本。如果有这样一个例子它很棒。
我希望使用。
WPF, 计时器, 代表,活动
我不确定这些是否足够或我还需要更多东西。
提前致谢。
答案 0 :(得分: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);
}
p.s:你的应用程序名称会以你在那里写的方式显示在任务管理器上
关于使用通知图标,实际上WPF不支持现成的图标,因此要么使用Windows窗体通知图标,要么使用codeproject.com的其他答案中提到的那个
如果您想使用Windows窗体中已存在的那个,则必须在项目中添加对System.Windows.Forms的引用
答案 1 :(得分:1)
我认为你会很好。您只需要一个NotifyIcon和一个Timer。我已经完成了类似的方式,除了我没有使用WPF(我更喜欢使用'经典'窗口设计器)。
让你的应用程序在启动时启动的最简单方法可能是将它放入“开始”菜单中的“启动”文件夹中,实际上不需要使用注册表。
答案 2 :(得分: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