Есть программа, которая прописывает себя в автозагрузку. Все работает, все отлично.
RegistryKey reg;
reg = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\", true);
reg.SetValue("PCVision", Assembly.GetExecutingAssembly().Location);
Но есть одна проблема, когда пользователь ставит и снимает компьютер со сна - программа понятным образом не запускается. так как полноценной перезагрузки системы не происходит.
Собственно вопрос, возможно кто-то из вас уже ранее стыкался с подобным и знает как правильно выйти из этой ситуации.
Сомневаюсь, что реестре есть раздел, отвечающий за это. Например, гугл молчит на запрос вида "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;
}
}
Получается, что самое простое - это в фоне крутить какую-нибудь программку/сервис, которая слушает события изменения питания и на основании этого запускает нужный софт.
Попробуйте запустить приложение(напишите свою службу, которая будет следить, за работой приложения и когда надо запускать.), чтобы поймать событие:
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"
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Каким образом из реализации поведения контрола можно передать свойство или параметр во ViewModelВ окне имеется PasswordBox у которого реализовано...
Пробовал гуглить по этому коду, но ничего не нашелВообще, я не удивлен крешу, так как тут 20+ потоков, которые вызывают WinApi-функции через библиотеку...
Создаю таблицу в dbf, так работает нормально