2017-10-09 2 views
0

Ich versuche a touchless interface using C# zu bauen. Ich benutze diese Schnittstelle, um andere Programme oder Windows-UI-Elemente zu steuern. Um das zu tun, benutze ich hauptsächlich user32.dll, um Maussteuerungsaktionen durchzuführen.Einen Mauszeiger programmgesteuert sichtbar machen, wenn keine Maus angeschlossen ist

Wenn ich versuche, the touchless interface zu verwenden, und wenn keine Maus mit dem PC verbunden ist, kann ich den Mauszeiger bewegen, aber es ist unsichtbar.

Mir ist bewusst, dass durch die Verwendung von Maustastenoptionen der Mauszeiger sichtbar gemacht werden kann. Allerdings mache ich es lieber programmatisch im Code sichtbar.

Kann der Cursor mit .Net sichtbar gemacht werden?

+0

* wenn keine Maus an den PC angeschlossen ist, kann ich immer noch den Mauszeiger bewegen, aber es ist nicht sichtbar. * Wie kann man den Cursor bewegen und wie Sie wissen, es bewegt sich, wenn unsichtbar? – CodingYoshi

+0

Die Symbole im Hintergrund werden markiert, wenn der unsichtbare Cursor über sie hinwegfährt. Ich bewege den Cursor durch die Mausfunktionen in user32.dll. –

Antwort

-2

Wird dies (oder eine Variante) Sie zu einem sichtbaren Cursor machen?

this.Cursor = System.Windows.Forms.Cursors.Hand; 
-1

Sprechen Sie über Ihr eigenes Antragsformular oder möchten Sie mit einer anderen Anwendung interagieren?

Wenn es Ihre eigene ist denke ich, dieser Ansatz unter Windows.Forms Namespace würde halp Sie: https://msdn.microsoft.com/en-us/library/system.windows.forms.cursor.hide(v=vs.110).aspx

Wenn nicht, fürchte ich Sie nicht, C# ist nicht so gut Fenster Seite stopft zu tun, und wenn reden über Windows-shell, die beste Route Schnittstelle wird fast immer durch user32.dll, wie hier: https://msdn.microsoft.com/en-us/library/windows/desktop/ms648396(v=vs.85).aspx

ich mag es nicht persönlich eine fremde DLL C# verwalteten System importieren, es klingt einfach nicht gut genug Ich würde C/C++ dafür gehen, aber wenn es zu komplex ist, was ich denke, wäre eine gute Option golang, die einen reicheren Standard hat b und es ist einfacher zu handhaben als C/C++, aber natürlich hängt es von Ihren Bedürfnissen ab.

Prost

+0

Ich benutze eine transparente, Klick-WPF-Schnittstelle in meinem Programm. Mein Hauptanliegen ist also die Interaktion mit anderen Programmen und/oder Windows-Elementen. Ich konnte die ShowCursor-Funktion von user32.dll nicht funktionieren. –

0

Sie können user32.dll verwenden.

internal static class WinCursors 
{ 
    [DllImport("user32.dll")] 
    private static extern int ShowCursor(bool bShow); 


    internal static void ShowCursor() 
    { 
     while (ShowCursor(true) < 0) 
     { 
      ShowCursor(true); 
     } 
    } 

    internal static void HideCursor() 
    { 
     while (ShowCursor(false) >= 0) 
     { 
      ShowCursor(false); 
     } 
    } 
} 
+0

Ich habe Ihren Code mit den Korrekturen versucht. Der Cursor verschwindet und erscheint auf einem Computer, mit dem bereits eine Maus verbunden ist. Die ShowCursor-Methode macht den Mauszeiger jedoch nicht auf einem Computer sichtbar, an dem keine Maus angeschlossen ist. –

+0

Ja, aber ich verstehe es nicht, was ist der Sinn der Maus zu zeigen, wenn Sie keine Maus oder eine simulierte Maus/Gerät angeschlossen haben? Irgendwie sollten Sie in der Lage sein, das Gerät zu simulieren und die Mausereignisse zu triggern. Und die Touch-Oberfläche hat nichts mit der Mausschnittstelle zu tun. – Ugur

+0

Die Schnittstelle ist berührungslos. –

Verwandte Themen