bestimmte tasten deaktivieren?

yovani1896

Grünschnabel
hi @ all,

ich hätte da mal ne frage, und zwar wollte ich fragen, ob es einen befehl gibt bestimmte tasten der tastatur zu blocken? also zum beispiel die "p" taste oder so... oder kann man auch tastatur folgen wie (strg + alt + entf) blocken?

vielen dank schonmal im voraus

MFG yovani1896

p.s.: ich habe schon gesucht aber nichts besonderes gefunden...:)
 
Hi,
warum möchtest du die Tastatur blocken? Was ist das Ziel des Programms? Kannst du mal den entsprechenden Codeabschnitt posten? Ich bin sicher, wenn diese Fragen geklärt sind, wird es einfacher sein, dein Problem zu lösen.
Ciao
DosCoder
 
ja klar...
also das ziel meines programmes ist einfach nur, dass ich meinem freund so ein scherz programm mache. das soll dann so ein programm sein, das einen großen button hat und wenn er da drauf klickt, sollen ganz viele msgboxen kommen wo was draufsteht...
nur es sollte halt die kombination strg + alt + entf für ein paar minuten blockieren...
oder es sollte eine tastenkombienation geben, mit der man das wieder aktivieren kann...
(nicht das ihr es falsch versteht... ich will kein "verarsche" virus machen... soll nur so ein witz sein =) )


MFG yovani1896
 
Hi,
Windows-Kombinationen zu blocken geht leider mit VB nicht. Einfachste Lösung, wäre. die Tastatur von PC zu entfernen, oder eine der 3-Tasten auszubauen und den taster zu manipulieren. (Ich übernehme keine Haftung für defekte Tastaturen)
Ciao
DosCoder
 
Die Kombination <Strg>+<Alt>+<Entf> lässt sich überhaupt nicht blocken, da wäre schon ein verdammt tiefer Eingriff ins System erforderlich. Man kann aber Tastatur und Maus komplett blocken, wie steht hier, hier noch eine Ergänzung.

Da darfst du dann aber nicht vergessen, die auch wieder freizugeben (z.B. nach einer gewissen Zeitspanne), sonst hilft nur mehr der Resetknopf.


Der Doc!
 
Zuletzt bearbeitet:
hi
Visual Basic:
Option Explicit

Private Declare Function BlockInput Lib "user32" (ByVal fBlock As Long) As Long 'Funktion, die die Tastatur blockt

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

Private Sub Command1_Click() 'Button zum aktivieren der Deaktivierung
    Timer1.Interval = 500            'Timer(s. u.) wird alle 500 millisiekunden aufgerufen
    Timer1.Enabled = True         'Timer wird gestartet
    Call BlockInput(API_TRUE)   'Tastatur wird geblockt. Parameter sagt: blocken
End Sub

Private Sub Timer1_Timer() 'Timer
    Static Cnt As Long 'STATIC sorgt dafür, dass die Variable nach verlassen der Methode erhalten bleibt
    
    Cnt = Cnt + 1
    If Cnt > 10 Then 'wenn die Prozedur 10 mal durchlaufen wurde dann ...
        Cnt = 0 
        Timer1.Enabled = False ' Timer stoppen
        Call BlockInput(API_FALSE) 'Tastaturblockade wird aufgehoben. Parameter sagt: Aktivieren
        Label1.Caption = ""
    Else 'sonst
        Label1.Caption = "Verbleibende Zeit bis zur Rückstellung: " _
                         & Format$(CStr((10 - Cnt)) / 2, "0.0") 'Ausgabe der Zeit
        
    End If
End Sub
In diesem Fall wird die Blockade alle 500 mls aufgerufen. Die Gesamtzeit errechnet sich durch 500 mls * 10 = 5000 mls = 5 sek.
Ciao
DosCoder
 
Zuletzt bearbeitet:
Das heißt also, dass wenn ich in dieser zeile:

Timer1.Interval = 500

die 500 zur 50000 machen würde, wäre die tastatur für 500 sekunden geblockt?
wenn das so ist kann ich doch den code übernehmen... nur was müsste ich alles in die form packen? wie viele timer etc. ?

ps: vielen dank schonmal an alle wart ne große hilfe für mich =)


MFG yovani1896
 

Neue Beiträge

Zurück