Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0413: Maus und Tastatur systemweit sperren und wieder freigeben

 von 

Beschreibung 

Mit der Funktion BlockInput läßt sich sowohl die Maus als auch die Tastatur den Eingaben des Anwenders systemweit entziehen, allerdings immer nur gleichzeitig, eine Unterscheidung der beiden Komponenten findet also nicht statt.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

BlockInput

Download:

Download des Beispielprojektes [2,16 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Timersteuerelement "Timer1"
' Steuerelement: Schaltfläche "Command1"
' Steuerelement: Beschriftungsfeld "Label1"

Option Explicit

Private Declare Function BlockInput Lib "user32" (ByVal fBlock _
        As Long) As Long

Const API_FALSE As Long = 0&
Const API_TRUE As Long = 1&

Private Sub Command1_Click()
    Timer1.Interval = 500
    Timer1.Enabled = True
    Call BlockInput(API_TRUE)
End Sub

Private Sub Timer1_Timer()
    Static Cnt As Long
    
    Cnt = Cnt + 1
    If Cnt > 10 Then
        Cnt = 0
        Timer1.Enabled = False
        Call BlockInput(API_FALSE)
        Label1.Caption = ""
    Else
        Label1.Caption = "Verbleibende Zeit bis zur Rückstellung: " _
                         & Format$(CStr((10 - Cnt)) / 2, "0.0")
        
    End If
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 25 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Sonny am 06.12.2010 um 15:52

Hey Alex bei mit kommt bei deinen Code ein Fehler mit Application.OnTime
Kann mir da vlt. einer helfen???

Kommentar von Alex am 06.10.2009 um 08:19

Option Explicit

Private Declare Function BlockInput Lib "user32" (ByVal fBlock As Long) As Long

Const API_FALSE As Long = 0&
Const API_TRUE As Long = 1&

Private Sub sperren()

Call BlockInput(API_TRUE)

Application.OnTime Now + TimeValue("00:00:15"), "entsperren"

End Sub



Private Sub entsperren()

Call BlockInput(API_FALSE)

End Sub

Kommentar von Michael Schmidt am 29.07.2009 um 08:59

Hallo,

kann mir jemand sagen wie ich diese funktion in ein Excel Makro aufnehmen kann ?

Kommentar von räuber am 14.05.2009 um 19:29

Funktionier ausgezeichnet unter XP, genau das wonach ich gesucht habe.
Leider erkennt mein Antivir die compilierte .exe nach einer zeit als Trojaner.
Weis da jemand Abhilfe?

Kommentar von FeGm am 03.10.2006 um 01:31

Die Tastatur ist unter XP SP 1 mit VB6 NCIHT gespert!

Kommentar von hul am 10.05.2005 um 11:16

Hin und wieder wird die Sperre nicht sauber entfernt.
Bei XP hebt sogar Strg+Alt+Entf die Sperre für Drag and Drop nicht auf. Wer weiss Rat? Doevents hat nicht geholfen.

Kommentar von LegacyOfHate am 01.12.2004 um 14:30

Das funktioniert sogar bei .NET

Kommentar von NormBot am 15.09.2004 um 22:17

funzt nur leider geht die ALT Strg Entf. noch das iss schade !!! wollts still legen

Kommentar von BlueDevil am 26.12.2003 um 03:42

Ergänzung zu meinem Beitrag:
Ihr müsst den Registry Ordner "System" und die
Zeichenfolge "DisableTaskMgr" selber erstellen!
Mfg BlueDevil

Kommentar von BlueDevil am 26.12.2003 um 03:31

Das unterbinden von "Strg+Alt+Entf" funktioniert! auch bei NT-Systemen (NT,2000,XP) http://www.activevb.de/rubriken/faq/affengriff.html
Da ist es beschrieben.
Mfg BlueDevil

Kommentar von fLm am 17.11.2003 um 19:15

wisst ihr eigentlich, dass das programm nicht strg+alt+entf sperrt? :P

Kommentar von Huseyin am 16.08.2003 um 14:54

Naja, STR+ALT+ENTF und schon hat man das programm hintergangen!

Kommentar von Christian Sachse am 12.03.2003 um 20:05

Ich kapiere diesen ganzen Kram nicht.Vieleicht bin ich auch zu doof.

Kommentar von Christian Sachse am 12.03.2003 um 20:01

Gibt es das auch auf Deutsch???????????

Kommentar von Ralf Kastl am 10.01.2003 um 21:13

Gibt es sowas auch als fertige EXE ?

Kommentar von Mr.Mo am 31.08.2002 um 02:13

bei diesem tipp kann man aber noch immer "strg+Alt+Entf" drücken. Ich habe windows XP

Kommentar von ENIAC am 02.02.2002 um 03:05

Um diesen Spaß wirksam zu lassen. Muss man Strg Alt Entf deaktivieren. In irgendeinem Tip steht der Drin. De Arnie

Kommentar von microbe am 29.10.2001 um 11:39

Hi !
Diese Funktion funktioniert bei mir sowohl unter Windows 98 als auch unter Windows ME. Zusammen mit Tipp Nr. 015 ist es möglich, den Computer wirklich völlig einzuschränken.
Schöne Grüße microbe

Kommentar von Kurt am 16.10.2001 um 02:10

SystemParametersInfo(SPI_SCREENSAVERRUNNING,0,0,0);Mit dieser Funktion lässt sich str alt entf unterbinden(user32.lib)
BlockInput funktioniert bei mir Windows 98 leider auch nicht.

Kommentar von Daniel Lensing am 12.10.2001 um 17:08

Kann leider auch nur mitteilen, dass Mit NT4 und VB5 der BlockInput-Befehl nicht funktioniert.

Kommentar von Movergan am 03.10.2001 um 15:43

Ich benutze Win95 und VB5. Bei funktioniert der Tipp nicht. Ich bekomme beim Ausführen folgenden Fehler:
Laufzeitfehler '453':
Dll-Einsprungpunkt BlockInput in user32 nicht gefunden.
Ich vermute, dass diese Funktion von Win95 nicht unterstützt wird.

Kommentar von DaveStar am 30.09.2001 um 21:51

Jo kann auch nur sagen mit Ctrl. Alt Del. oder wie man in Deutschland sagt
Strg. Alt Entf. verliert der Spass seine Wirkung

Kommentar von microbe am 28.08.2001 um 09:48

Tut mir leid -- wenn man mit Strg+Alt+Entf unter Win98 das System anhält, dann sind danach die Sperren wirkungslos !

Kommentar von MadCow am 31.07.2001 um 16:55

Ich beutze VB6 und NT4 und er ganze Spass funzt bei mir nicht.
Wenn man der MSDN glauben schenkt ist die Funktion BlockInput erst ab Win98 oder Win2k implementiert.

Kommentar von Florian am 15.06.2001 um 09:09

Ich benutze VB6 auf einem Windows2000-System.
Zum Sperren der Maus und Tastatur: Funktioniert eigentlich einwandfrei, bis auf [Strg] + [Alt] + [Entf]!