如何确定Windows是否重启?

Nav*_*ani 0 c# wpf

我希望我的WPF应用程序只运行一次.我对此没有任何问题.
我的问题是如何确定当前是否重新启动了Windows?

Rya*_*yan 7

您可以将文件写入磁盘,然后使用MoveFileEx立即将其标记为"重新启动时删除":

所以在伪代码中:

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
   }
} 
Run Code Online (Sandbox Code Playgroud)