c # контроль выключения окон - PullRequest
0 голосов
/ 30 мая 2019

Пожалуйста, прочитайте - это не дубликат .

У меня есть служба Windows, которая работает под действием LocalSystem acct.Мне нужно восстановить определенные файлы перед выключением.Я могу перехватить действие «Завершение работы», после чего я начинаю процесс восстановления, но завершение происходит до того, как я могу завершить.Я включил привилегии завершения работы, добавил вызовы AbortShutdown (Win32) и несколько других (то есть shutdown / a) параметров, но они не работают.Я полагаю, что это потому, что отключение или перезапуск уже были инициированы, и я прочитал, что эти функции останавливают отключение только тогда, когда оно запланировано.

Моя цель - перехватить завершение работы, прервать его, завершить мои задачи изатем выключение.Мне просто нужно больше времени, а количество времени зависит от количества и размера файлов, которые я должен восстановить.

Я открыт для любых предложений и ценю ваше время и внимание.Спасибо!

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Это больше похоже на то, что можно сделать с помощью пакетных файлов Windows.

0 голосов
/ 30 мая 2019

Ваша цель несостоятельна. В Windows пользователь может контролировать процесс выключения. Если пользователь хочет выключить компьютер, ваше программное обеспечение не должно противоречить намерениям пользователя.

На вас лежит ответственность за то, чтобы ваше программное обеспечение могло справиться с отключением, когда бы это ни происходило. Обычно это означает, что файловые операции должны быть как можно более атомарными, или использовать файл «горячего журнала» для восстановления (при следующем запуске системы) в случае невозможности выполнения атомарных операций.

Файлы, о которых вы говорите, которые вы должны восстановить перед выключением, должны быть «восстановлены» (трудно точно сказать, что вы здесь имеете в виду), как только над ними будут выполнены какие-либо операции. Без дальнейших подробностей сложно обсудить конкретные подходы.

...