【发布时间】:2014-10-24 03:31:41
【问题描述】:
我正在制作一个应用程序,当系统空闲时,即当用户不与系统交互时,我将在其中实现 自动监控关闭。
我找到了一个链接:http://www.codeproject.com/KB/system/SystemIdleTimerComponent.aspx
它确实提供了知道系统何时空闲的组件。但是当我包括:
Public WM_SYSCOMMAND As Integer = &H112
Public SC_MONITORPOWER As Integer = &Hf170
<DllImport("user32.dll")> _
Private Shared Function SendMessage(hWnd As Integer, hMsg As Integer, wParam As Integer, lParam As Integer) As Integer
End Function
Private Sub button1_Click(sender As Object, e As System.EventArgs)
SendMessage(Me.Handle.ToInt32(), WM_SYSCOMMAND, SC_MONITORPOWER, 2)
End Sub
显示此错误:跨线程操作无效:控件“Form1”从创建它的线程以外的线程访问。
【问题讨论】:
-
如果你想要一个 VB.NET 解决方案,不要标记它 [c#]。
-
@Oded:我已经编辑了问题... :)
-
您如何看待“当用户离开一段时间”?
-
我关闭显示器的目的是为了节省电量。所以当用户不使用系统时,即系统空闲时,显示器应该关闭。因此,我想知道系统空闲的时间。
-
操作系统在关闭显示器方面肯定比你做得更好?