2009-07-24 6 views
0

Ich schreibe eine Anwendung, um den Mausklick/Bewegung vollständig zu steuern.Mausbewegung blockieren/aufheben/klicken in C#

Zum Beispiel, wenn ich die Anwendung ausgeführt habe, Formular vollständig transparent, Vollbild, dann, wenn ich die Maustaste klicke, im Normalfall, wird es die Anwendung im Hintergrund im Fokus bringen - ich muss dies zu stoppen (dh das Klicken auf die Schaltfläche und nichts sichtbares sollte auf dem Bildschirm passieren), da ich die gesamte Mausaktivität verarbeiten und mit dieser Anwendung verschicken muss.

Ich muss 2 Maus erlauben unabhängig zu handeln, und ich verwende dies als ein Overlay, Erstellen von 2 falsche Zeiger durch Zeichnen mit C#, whist Deaktivieren der echten Maus.

+0

Ist Ihre Form unsichtbar und nicht "vollständig transparent"? Ein Formular transparent und nicht nur unsichtbar zu machen, erfordert zusätzliche Arbeit - das ist es, was Sie brauchen? – MusiGenesis

+0

Es würde mir nichts ausmachen, entweder transparent oder unsichtbar zu sein, solange ich sehen kann, welche Anwendung im Hintergrund ist, und wenn ich auf den unsichtbaren/transparenten Teil meiner Anwendung klicke, bringt die Maus die Hintergrundanwendung nicht hinein Vordergrund/Fokus. –

Antwort

0

Was Sie meinen, heißt Maus-Capture - und es kann sowohl Windows Forms als auch WPF und WinAPI direkt getan werden.

Hier ist the way to do it in WinForms.

Auf der WinAPI-Ebene können Sie den Funktionsaufruf SetCapture(HWND w) verwenden.

+0

Hallo, Hier drin: Hier ist der Weg, um es in WinForms zu tun. <- das sagt eigentlich "Auch wenn das Vordergrundfenster die Maus erfasst hat, kann der Benutzer trotzdem auf ein anderes Fenster klicken und es in den Vordergrund bringen", was ich nicht will, was ich will ist das egal wo/Wenn die Schaltfläche geklickt wird, ist die Anwendung immer noch im Fokus/Vordergrund. –