如何解决恢复后检测何时到达桌面
我可以通过以下方式检测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 举报,一经查实,本站将立刻删除。