#c_sharp
Есть программа, которая прописывает себя в автозагрузку. Все работает, все отлично. RegistryKey reg; reg = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\", true); reg.SetValue("PCVision", Assembly.GetExecutingAssembly().Location); Но есть одна проблема, когда пользователь ставит и снимает компьютер со сна - программа понятным образом не запускается. так как полноценной перезагрузки системы не происходит. Собственно вопрос, возможно кто-то из вас уже ранее стыкался с подобным и знает как правильно выйти из этой ситуации.
Ответы
Ответ 1
Сомневаюсь, что реестре есть раздел, отвечающий за это. Например, гугл молчит на запрос вида "run program after power change". Да и с трудом представляю когда бы это могло кому-нибудь понадобиться => Microsoft, скорее всего, не стали реализовывать невостребованный функционал. Если бы это и было, то в пользовательском интерфейсе, где-нибудь рядом с местом куда добавляются программы в обычную автозагрузку. Например, прикладная программа может поймать данные события как в этом примере: SystemEvents.PowerModeChanged += OnPowerChange; private void OnPowerChange(object s, PowerModeChangedEventArgs e) { switch ( e.Mode ) { case PowerModes.Resume: break; case PowerModes.Suspend: break; } } Получается, что самое простое - это в фоне крутить какую-нибудь программку/сервис, которая слушает события изменения питания и на основании этого запускает нужный софт.Ответ 2
Попробуйте запустить приложение(напишите свою службу, которая будет следить, за работой приложения и когда надо запускать.), чтобы поймать событие: Microsoft.Win32.SystemEvents.PowerModeChanged += this.SystemEvents_PowerModeChanged; private void SystemEvents_PowerModeChanged(object sender, Microsoft.Win32.PowerModeChangedEventArgs e) { if (e.Mode == PowerModes.Resume) { //Ваш код } } ну или через планировщик заданий , триггер на следующее событие: Журнал Microsoft-Windows-Diagnostics-Performance Источник Diagnostics-Performance Код события 300 или же на "At Workstation Unlock"
Комментариев нет:
Отправить комментарий