2009-02-25 9 views
10

Ich suche nach einem Code (vorzugsweise C#), der die Tastatur- und Mauseingabe verhindert.Wie kann ich die Tastatur- und Mauseingabe in C# blockieren?

+0

Können Sie einen weiteren Zusammenhang angeben, warum Sie dies tun möchten? – JaredPar

+0

Meinst du nur in deiner Anwendung oder global über das System? –

+0

Und zu was; Schließlich könnten Sie sich auf ein Textfeld beziehen, bei dem die Eigenschaft readonly gesetzt wird. –

Antwort

7

Blick in die BlockInput Win32-Funktion

Klingt wie etwas Spaß Testen :)

+0

Kann ich nur bestimmte Arten von Eingängen blockieren lassen? Wie nur Tastatur und Maus. – Kishori

19

Aufbauend auf Joshs (richtige) Antwort. Hier ist die PInvoke-Signatur für diese Methode.

public partial class NativeMethods { 

    /// Return Type: BOOL->int 
    ///fBlockIt: BOOL->int 
    [System.Runtime.InteropServices.DllImportAttribute("user32.dll", EntryPoint="BlockInput")] 
    [return: System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.Bool)] 
public static extern bool BlockInput([System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.Bool)] bool fBlockIt) ; 

} 

public static void BlockInput(TimeSpan span) { 
    try { 
    NativeMethods.BlockInput(true); 
    Thread.Sleep(span); 
    } finally { 
    NativeMethods.BlockInput(false); 
    } 
} 

EDIT

Added einige Code zu zeigen, wie für ein Intervall haben in diesem Artikel Processing Global Mouse and Keyboard Hooks in C# einen Blick

+1

Vielen Dank dafür. Haben Sie einen Code, der diese Signatur verwendet? Zum Beispiel Block Eingang, warten Sie 30 Sekunden, wieder aktivieren Sie den Eingang. Vielen Dank –

+0

Werfen Sie einen Blick auf die verwaltete Windows-API, es könnte etwas haben, das diese Funktionalität bereits umschließt. http://mwinapi.sourceforge.net/ –

+0

@Matt, ich greife in der Regel nur die Sig von der PInvoke Interop Assistant http://www.codeplex.com/clrinterop – JaredPar

1

zu blockieren. Der Typ, der diesen Artikel geschrieben hat, hat eine Menge Nachforschungen über das Problem angestellt.

Vielleicht gibt es etwas, das Sie verwenden können.

Verwandte Themen