VB.NET: How to know time for which system is idle?

Posted by Daredev on Stack Overflow See other posts from Stack Overflow or by Daredev
Published on 2011-11-26T18:57:45Z Indexed on 2011/11/27 9:50 UTC
Read the original article Hit count: 534

Filed under:
|

I'm making an application in which I'm implementing auto-monitor turn off when system is idle, i.e. when user is not interacting with the system.

I found a link: http://www.codeproject.com/KB/system/SystemIdleTimerComponent.aspx

it does provides the componenent to know when system is idle. But when I include:

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

It shows this error: Cross-thread operation not valid: Control 'Form1' accessed from a thread other than the thread it was created on.

© Stack Overflow or respective owner

Related posts about .NET

Related posts about vb.net