暂停 Windows 关闭直到应用程序完成它的工作 VB.Net

Suspend Windows Shutdown until application finished it´s work VB.Net

我写了一个小桌面实用程序,它可以自动检测包含防病毒模式和软件包更新的 USB 记忆棒。它可以在检测或系统 shutdown/restart 上执行这些更新,问题来了...... 我无法让暂停关机正常工作.. 如果我使用此代码,我的应用程序会成功阻止 windows 关闭,但不会执行更新过程。

    ' >>>>Process Windows Shutdown<<<<
    If m.Msg = WM_QUERYENDSESSION OrElse m.Msg = WM_ENDSESSION Then

        ShutdownBlockReasonCreate(Me.Handle, "Performing #### and Kasperksy Updates...")
        UnZipKit()
        ShutdownBlockReasonDestroy(Me.Handle)
        Return

    End If

我已经发现我需要在某处 return FALSE,但我不知道该怎么做。 Microsoft 声明可在此处找到:https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms700677(v=vs.85)

至于其他信息,如果我不包括 RETURN windows 关闭将永远不会延迟...

另一种方法是编写关机脚本。 像这里描述的那样https://docs.microsoft.com/en-us/previous-versions/technet-magazine/dd630947(v=msdn.10)

a vbs 脚本几乎可以做任何类似于 vb net-

的事情