需要时重新启动 - c#和Windows Update

时间:2014-12-08 20:50:55

标签: c# windows api console windows-update

我正在构建一个c#控制台应用程序,它可以自动查找更新,下载并安装它们。

我正在将此方法用于安装部分:

        public static void InstallUpdates(UpdateCollection DownloadedUpdates)
    {
        UpdateSession UpdateSession = new UpdateSession();
        UpdateInstaller InstallAgent = UpdateSession.CreateUpdateInstaller() as UpdateInstaller;
        InstallAgent.Updates = DownloadedUpdates;

        //Starts a synchronous installation of the updates.
        // http://msdn.microsoft.com/en-us/library/windows/desktop/aa386491(v=VS.85).aspx#methods
        IInstallationResult InstallResult = InstallAgent.Install();

    }

根据this链接,我可以检查是否需要重启。我想要实现的是系统重启,当RebootRequiredBeforeInstallation变为true时立即完成。

我想过这样做,但这不起作用,因为我不能使用else语句:

        while (!InstallAgent.RebootRequiredBeforeInstallation)
        {

        } else
        {
            // Reboot
        }

对此有什么正确的解决方法?

1 个答案:

答案 0 :(得分:0)

这个怎么样:

while (!InstallAgent.RebootRequiredBeforeInstallation)
{
    // Install things
    // If the installer sets the RebootRequiredBeforeInstallation flag to
    // true, the while loop will terminate and you can reboot.
}

if (InstallAgent.RebootRequiredBeforeInstallation)
{
    // Reboot
}