BlockInput

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von rxn333.

    Hallo ich weiß es gibt schon paar einträge über blockinput (gegooglet hab ich auch)
    und ich kommt nicht weiter ich hab jetzt :

    VB.NET-Quellcode

    1. Private Declare Function BlockInput Lib "user32" (ByVal fBlock _
    2. As Long) As Long
    3. Const API_FALSE As Long = 0&
    4. Const API_TRUE As Long = 1&
    5. If System.IO.File.Exists(My.Settings.laufwerk + My.Settings.pfad + My.Settings.dateiname + ".txt") Then
    6. BlockInput(API_FALSE)
    7. Label1.Text = "PC ENTSPERRT!"
    8. Label1.ForeColor = Color.Green
    9. Timer1.Enabled = False
    10. Else
    11. BlockInput(API_TRUE)
    12. Label1.Text = "PC GESPERRT!"
    13. Label1.ForeColor = Color.Red
    14. End If


    Aber irgendwie kann ich die maus bewegen und die Tastatur funktioniert auch
    is irgendwas falsch ode regth es einfach nicht?
    ssry oben stands falsch habs aber so:

    VB.NET-Quellcode

    1. Private Declare Function BlockInput Lib "user32" (ByVal fBlock _
    2. As Long) As Long
    3. Const API_FALSE As Long = 0&
    4. Const API_TRUE As Long = 1&
    5. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    6. If System.IO.File.Exists(My.Settings.laufwerk + My.Settings.pfad + My.Settings.dateiname + ".txt") Then
    7. BlockInput(API_FALSE)
    8. Label1.Text = "PC ENTSPERRT!"
    9. Label1.ForeColor = Color.Green
    10. Timer1.Enabled = False
    11. Else
    12. BlockInput(API_TRUE)
    13. Label1.Text = "PC GESPERRT!"
    14. Label1.ForeColor = Color.Red
    15. End If
    16. End Sub

    VB.NET-Quellcode

    1. Option Explicit On
    2. Imports System.Windows.Forms
    3. Public Class form1
    4. Dim PSI As New ProcessStartInfo
    5. ' Form Load
    6. Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    7. Label1.Visible = False
    8. Timer1.Enabled = False
    9. Timer1.Interval = 1000
    10. End Sub
    11. Private Declare Function BlockInput Lib "user32" (ByVal fBlock As Boolean) As Boolean
    12. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    13. BlockInput(True)
    14. Timer1.Tag = 15
    15. Timer1.Enabled = True ' Timer1.Start()
    16. End Sub
    17. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    18. Label1.Text = "Du kannst jetzt keine eingabe mehr machen" & vbCrLf & "Verbleibende Zeit: " & _
    19. CStr(Timer1.Tag) & " Sekunden"
    20. Label1.Visible = True
    21. Timer1.Tag = Timer1.Tag - 1
    22. ' Nachdem die Zeit abgelaufen ist
    23. If Timer1.Tag < 0 Then
    24. BlockInput(False)
    25. Button1.Enabled = True
    26. Label1.Text = "Alles wieder frei gegeben,"
    27. End If
    28. End Sub
    Ja das ist ja alles super und toll,
    Aber was wenn der User den taskmanager mit Ctrl+Alt+Del öffnet ?
    -> Dann ist alles umsonst und BlockInput wird wieder ausgeschaltet...

    Also: Setzt BlockInput bei jedem Tick wieder auf 1.
    So lässt sich jedoch der zwar Taskmanager öffnen, jedoch nichtt bedienen