Приложение в системном трее для уведомления каждые 2 часа - PullRequest
2 голосов
/ 24 ноября 2010

Я пытаюсь создать приложение в системном трее, которое загружается при запуске и выдает всплывающий текст каждые 2 часа.Если есть такой пример, это здорово.

Я ищу использовать.

WPF, Таймеры, Делегаты, события

Я не уверен, достаточно ли этого или мне нужно что-то большее.

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 24 ноября 2010

Прежде всего, вот что вам нужно для запуска приложения при запуске системы: Допустим, у меня есть checkBox, и я хочу запустить свое приложение при запуске Windows, если этот checkBox активирован:

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 Forms, либо вы используете тот, который указан в ответе от codeproject.com

если вы хотите использовать тот, который уже существует в формах Windows, вы должны добавить ссылку на System.Windows.Forms в вашем проекте

1 голос
/ 24 ноября 2010

Я думаю, с тобой все будет в порядке.Все, что вам нужно, это на самом деле NotifyIcon и таймер.Я выполнил подобное таким образом, за исключением того, что я не использовал WPF (я скорее использовал «классический» конструктор окон).

Самый простой способ запустить приложение при запуске, вероятно, заключаться вПапка «Автозагрузка» в меню «Пуск», фактически нет необходимости использовать реестр.

0 голосов
/ 24 ноября 2010

Служба 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

...