恢复后检测何时到达桌面

问题描述

我可以通过以下方式检测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 GetUserObject@R_415_4045@ion(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.GetUserObject@R_415_4045@ion(DeskTopHwnd,5,pvInfo,Marshal.SizeOf(GetType(Integer)),lpnLenght).ToString &
              " -" & lpnLenght.ToString)
    Next

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)