mboost-dp1

Hvordan læser man "System idle time" igennem VB.net?


Gå til bund
Gravatar #1 - trekster
26. nov. 2002 14:37
Jeg er begyndt at rode lidt med VB.net, og skal i et lille program finde ud af hvor længe maskinen har været "inaktiv". Altså ligesom når windows detecter at ens maskine ikke har været brugt i fx 5 minutter, og så sætter screensaveren igang (hvad man har en aktiveret).

Den Idle tid må man da kunne læse vha. et API kald eller sådan noget?

Anyone?

Gerne kode eksempler. :)
Gravatar #2 - Miklos
28. nov. 2002 20:36
Hvis det er muligt også en VB6 version af samme :)

trakster - er VB.net godt - har kun prøvet VB6. Kan du tage et screenshot af UIet?
Gravatar #3 - Acro
28. nov. 2002 21:38
#2:

Visual Basic koden ligger her, har ikke prøvet det - men vil tro at hvis man skal bruge det i VB.NEET kan man forholdsvis let omskrive det;

http://www.freevbcode.com/ShowCode.Asp?ID=1610
Gravatar #4 - trekster
29. nov. 2002 16:05
I mellemtiden har jeg selv kodet mig ud af det. :) Ellers tak. :)
Gravatar #5 - Acro
29. nov. 2002 22:17
#4:

Kan du så ikke vise koden til andre der måtte være interesserede?
Gravatar #6 - trekster
4. dec. 2002 14:48
#5
Jo da, sorry :)

Kig i post #9

:)
Gravatar #7 - Acro
4. dec. 2002 14:48
#6:

Aaargghh!
Gravatar #8 - trekster
4. dec. 2002 14:49
Skod editor :(

Kan den ikke bare acceptere tags
Gravatar #9 - trekster
4. dec. 2002 15:03
Imports System.Data.OleDbPublic Class MainForm Inherits System.Windows.Forms.Form ' Api kald (idle counter) Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Integer ' konstanter Const SYSTEM_IDLE_SEC As Integer = 30 ' seconds ' private variabler Private mboo_MouseIdle As Boolean = False Private mboo_KeyIdle As Boolean = False Private mboo_SystemIdle As Boolean = False Private mint_IdleSec As Integer = 0 Private mint_LastIdleSec As Integer = 0 Private mint_OldX As Integer = 0 Private mint_OldY As Integer = 0 ' funktion til at checke om der er blevet trykket på en tast globalt på systemet Public Function KeyCheck() As Boolean Dim i As Integer For i = 0 To 255 If (GetAsyncKeyState(i) And &H8001) 0 Then Return True Exit Function End If Next i Return False End Function ' dette event køres for hvert idle count check (1 tick pr sekund) Private Sub IdleTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles IdleTimer.Tick ' check på at musen har bevæget sig If mint_OldY = Cursor.Position.Y And mint_OldX = Cursor.Position.X Then mboo_MouseIdle = True Else mboo_MouseIdle = False End If ' debug ProcessLabel1.Text = mboo_MouseIdle.ToString ' check om der er blevet trykket på en tast If Not KeyCheck() Then mboo_KeyIdle = True Else mboo_KeyIdle = False End If ' debug ProcessLabel2.Text = mboo_KeyIdle.ToString ' hvis både musen og tastaturet ikke er blevet aktiveret så tæl en sekund tæller op. Ellers nulstil den If mboo_MouseIdle = True And mboo_KeyIdle = True Then mint_IdleSec += 1 Else mint_IdleSec = 0 End If ' hvis der er gået (SYSTEM_IDLE_SEC) antal sekunder er systemet idle. If mint_IdleSec >= SYSTEM_IDLE_SEC Then mboo_SystemIdle = True Else mint_LastIdleSec = mint_IdleSec mboo_SystemIdle = False End If ' debug ProcessLabel3.Text = mboo_SystemIdle.ToString Label6.Text = mint_IdleSec.ToString Label4.Text = Cursor.Position.X.ToString Label5.Text = Cursor.Position.Y.ToString ' set musens gamle position til når der skal checkes igen mint_OldY = Cursor.Position.Y mint_OldX = Cursor.Position.X End SubEnd Class
Gravatar #10 - trekster
4. dec. 2002 15:04
Der er selvfølgelig lige nogle labels og en timer der skal stoppes på en form før det virker.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login