问题描述
我可以通过以下方式检测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 (将#修改为@)