Как определить, перезагружены ли окна? - PullRequest
0 голосов
/ 28 июня 2011

Я хочу, чтобы мое приложение WPF запускалось только один раз. У меня нет проблем с этим.
Моя проблема в том, как я могу определить, перезапускаются ли в данный момент окна?

Ответы [ 2 ]

7 голосов
/ 28 июня 2011

Вы можете записать файл на диск, а затем сразу пометить его как «удалить при перезагрузке», используя MoveFileEx:

Итак, в psuedocode:

if(File.Exists(CheckFileName))
   return false; // already ran once
else {
   // write out the check file
   using(checkFile = File.Create(CheckFileName, ...)) {
      // and mark it as delete on boot
      MoveFileEx(checkFile.SafeHandle,
         null,
         MOVEFILE_DELAY_UNTIL_REBOOT);
      return true; // ok to run
   }
} 
4 голосов
/ 28 июня 2011

Вы можете проверить и сохранить время работы системы вместе с последним временем работы и сравнить его с текущим временем работы.

Восстановление работоспособности системы с использованием C #

Какой-то псевдокод:

   DateTime computerLastStarted = Now - Uptime;
   if (computerLastStarted > storedComputerLastStarted + or - tollerance) {
      storedComputerLastStarted = computerLastStarted;
      StartProgram();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...