我正在开发一个应用程序,有一部分代码我只想在屏幕保护程序运行时运行,但我找不到方法,我在网上搜索,我只找到 c++ 和 c# 的解决方案.
我知道在 C++ 中什么时候可以SystemParametersInfo
用来查找,但在 Visual Basic 2012 中我不知道有什么方法,我尝试使用它,但它说它没有声明。
有什么我必须进口的吗?有没有办法确定屏幕保护程序是否正在运行?
我正在开发一个应用程序,有一部分代码我只想在屏幕保护程序运行时运行,但我找不到方法,我在网上搜索,我只找到 c++ 和 c# 的解决方案.
我知道在 C++ 中什么时候可以SystemParametersInfo
用来查找,但在 Visual Basic 2012 中我不知道有什么方法,我尝试使用它,但它说它没有声明。
有什么我必须进口的吗?有没有办法确定屏幕保护程序是否正在运行?
我找到了这种方式,它可以检测屏幕保护程序何时启动和停止:
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Const WM_SYSCOMMAND As Integer = &H112
Const SC_SCREENSAVE As Integer = &HF140
MyBase.WndProc(m)
If m.Msg = WM_SYSCOMMAND AndAlso m.WParam.ToInt32 = SC_SCREENSAVE Then
MsgBox("Capturado screensaver" & Now.ToLongTimeString)
AddHandler Application.Idle, AddressOf Application_Idle
End If
End Sub
Private Sub Application_Idle(ByVal sender As Object, ByVal e As EventArgs)
MsgBox("Capturada actividade" & Now.ToLongTimeString)
RemoveHandler Application.Idle, AddressOf Application_Idle
End Sub
基本上我所做的是检测屏幕保护程序的激活,当时我为Idle
事件创建了一个处理程序,所以当我获得用户活动(这是停止屏幕保护程序的原因)时,我知道屏幕保护程序何时停止。