微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

恢复后检测何时到达桌面

如何解决恢复后检测何时到达桌面

我可以通过以下方式检测Windows在暂停后何时恢复运行:

AddHandler SystemEvents.PowerModeChanged,AddressOf SystemEvents_PowerModeChanged
Private Sub SystemEvents_PowerModeChanged(ByVal sender As Object,ByVal e As PowerModeChangedEventArgs)

但是如果设置了用于访问桌面的PIN码...则在请求中生成事件 ,这可能要在真正打开桌面之前几秒钟或几分钟。

所以问题是:如何检测是否确实到达了桌面并且“正常”桌面确实可见

我尝试过:

    <DllImport("user32.dll",SetLastError:=True)>
    Friend Shared Function GetUserObjectinformation(ByVal hObj As IntPtr,ByVal nIndex As Integer,ByRef pvInfo As Long,<MarshalAs(UnmanagedType.I4)> ByVal nLength As Integer,<MarshalAs(UnmanagedType.I4)> ByRef lpnLengthNeeded As Integer) As Boolean
    End Function

    Dim pvInfo As Long
    Dim lpnLenght As Integer
    For x As Integer = 0 To 50
        Sleep(1000)
        Debug.Print("Info: " & 
        NativeMethods.GetUserObjectinformation(DeskTopHwnd,5,pvInfo,Marshal.SizeOf(GetType(Integer)),lpnLenght).ToString &
              " -" & lpnLenght.ToString)
    Next

...,但是Debug.Print始终会在PIN请求时以及一旦到达桌面时都给出“ 信息:False -0 ”。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。