Hallo zusammen,
ich benötige eure Hilfe für ein Problem bei meiner Anwendung. Ich bin selber ziemlich neu in VB und weis nicht wirklich, wie ich das ganze sauber umgesetzt bekomme.
Das Programm soll folgendens tun:
Wenn ein Benutzer für x Sekunden ( für meine Test 10s) keine Eingaben tätigt (Tastatur & Maus Systemweit) , soll ein Formular angezeit werden, welches nahezu durchsichtig ist. Bei MouseClick und KeyPress wird die Form ausgebeldent und die Arbeitsstation gesperrt. Ich bekomme es aber irgendwie nicht sauber hin, diese Idle TIme zu erhalten und dann das gewünschte Ereignis auszuführen.
Es wäre super. wenn ihr mir helfen könntet:
Vielleicht könnt ihr mir helfen.
Vielen Dank
Matthias
ich benötige eure Hilfe für ein Problem bei meiner Anwendung. Ich bin selber ziemlich neu in VB und weis nicht wirklich, wie ich das ganze sauber umgesetzt bekomme.
Das Programm soll folgendens tun:
Wenn ein Benutzer für x Sekunden ( für meine Test 10s) keine Eingaben tätigt (Tastatur & Maus Systemweit) , soll ein Formular angezeit werden, welches nahezu durchsichtig ist. Bei MouseClick und KeyPress wird die Form ausgebeldent und die Arbeitsstation gesperrt. Ich bekomme es aber irgendwie nicht sauber hin, diese Idle TIme zu erhalten und dann das gewünschte Ereignis auszuführen.
Es wäre super. wenn ihr mir helfen könntet:
VB.NET-Quellcode
- Option Strict Off
- Option Explicit On
- Imports VB = Microsoft.VisualBasic
- Imports System.Runtime.InteropServices
- Friend Class Transparentfrm
- Inherits System.Windows.Forms.Form
- Private Declare Function GetLastInputInfo Lib "user32.dll" (ByRef inputStructure As inputInfo) As Boolean
- Private Structure inputInfo
- Dim structSize As Int32
- Dim tickCount As Int32
- End Structure
- Private info As inputInfo
- Dim firstTick As Long
- Dim lastTick As Long
- Private Sub transparentfrm_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
- Me.Hide()
- GetLastInputInfo(info)
- Timer1.Start()
- End Sub
- 'Sperren der Arbeitsstation bei Verlassen der Anwendung
- Private Declare Function LockWorkStation Lib "user32.dll" () As Long
- Private Sub frmservice_hide()
- LockWorkStation()
- Me.Hide()
- GetLastInputInfo(info)
- Timer1.Start()
- End Sub
- Private Sub frmservice_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Click
- frmservice_hide()
- End Sub
- Private Sub frmservice_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
- frmservice_hide()
- End Sub
- Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
- 'This timer will fire every 1000ms(One Second) or so displaying the last time the user was active.
- '
- 'The size of the structure for the API call.
- info.structSize = Len(info)
- '
- 'Call the API.
- GetLastInputInfo(info)
- '
- 'Compare the tickcount values to determine if activity has occurred or not.
- If firstTick <> info.tickCount Then
- Me.Show()
- Me.Opacity = 0.1
- firstTick = info.tickCount
- Timer1.Stop()
- End If
- End Sub
- End Class
Vielleicht könnt ihr mir helfen.
Vielen Dank
Matthias