Winapi 如何检测Windows系统是否正在升级(特别是升级到Windows 10)

Winapi 如何检测Windows系统是否正在升级(特别是升级到Windows 10),winapi,operating-system,windows-10,Winapi,Operating System,Windows 10,我想知道是否有办法确定操作系统升级是否已启动。 发生这种情况时,是否有任何全局互斥或升级值集(在注册表中)? 我想在操作系统从一个版本升级到下一个版本时执行一些清理操作,特别是在Windows 10升级前后。可以通过检查名为Microsoft.Windows.Setup的互斥锁来检测操作系统升级。此互斥锁是在安装的初始阶段创建的。如果取消设置过程,这可能会导致误报。 检测操作系统升级的第二种方法是在重新启动时检查内核版本。如果内核版本与上次重新启动后的版本不同,则表示操作系统升级正在进行。我认为

我想知道是否有办法确定操作系统升级是否已启动。 发生这种情况时,是否有任何全局互斥或升级值集(在注册表中)?
我想在操作系统从一个版本升级到下一个版本时执行一些清理操作,特别是在Windows 10升级前后。

可以通过检查名为Microsoft.Windows.Setup的互斥锁来检测操作系统升级。此互斥锁是在安装的初始阶段创建的。如果取消设置过程,这可能会导致误报。
检测操作系统升级的第二种方法是在重新启动时检查内核版本。如果内核版本与上次重新启动后的版本不同,则表示操作系统升级正在进行。

我认为您提出的解决方案根本不可靠。首先,我不认为你能保证在任务被打断之前完成任务。但更大的问题是升级可能会失败并被恢复。或者升级可能成功,但稍后会恢复。你如何检测回归?事实上,您甚至如何确保在这些过程中运行代码?升级完成后,您可以进行清理吗?可能会看到内部版本号以某种方式发生变化。