Der Versuch einer Simulation der Maus Klicken / Ziehen

So, ich bin versucht zu simulieren, die linke Maustaste klicken und die linke Maustaste loslassen, um einige der automatisierten ziehen und ablegen.

Es ist derzeit in C# - Winforms (ja, winforms :|) und ist ein bisschen wie eine Gans.

Grundsätzlich, wenn ein Klick gesendet wird, will ich es aktualisieren Sie die cursor-position wird basierend auf der Kinect-input. Die Kinect-Seite der Dinge ist in Ordnung, aber ich bin mir nicht sicher, wie Sie Sie finden, wenn Sie die Taste noch gedrückt ist oder nicht.

hier ist der code, den ich bin derzeit mit + einige psuedocode, um besser helfen zu erklären, mich (do while).

class MouseImpersonator
{
    [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
    private static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo);

    private const int leftDown = 0x02;
    private const int leftUp = 0x04;

    public static void Grab(int xPos, int yPos)
    {
        Cursor.Position = new Point(xPos + 25, yPos + 25);
        mouse_event(leftDown, (uint) xPos, (uint) yPos, 0, 0);

        //do
        //{
        //Cursor.Position = new Point(KinectSettings.movement.LeftHandX, KinectSettings.movement.LeftHandY);
        //} while (the left mouse button is still clicked);
    }

    public static void Release(int xPos, int yPos)
    {
        Cursor.Position = new Point(xPos + 25, yPos + 25);
        mouse_event(leftUp, (uint) xPos, (uint) yPos, 0, 0);
    }
}

Ich habe eine Jagd von google und kann nichts finden, was ich brauche, außer für eine WPF-äquivalent: http://msdn.microsoft.com/en-us/library/system.windows.input.mouse.aspx

Ich bin ein wenig aus meiner Tiefe, aber jede Hilfe wird sehr geschätzt.

Lucas.

    -
  • Für Ihre information, dass der Namensraum ist Teil des WPF. Haben Sie versucht, setzen einer boolean-variable auf true, wenn Sie geben Sie Schnappen, und False, wenn Sie geben Sie Release ?
  • Sneaky WPF, Dank Mark, einstellen der Frage. Ich dachte über die bool Ansatz, aber dachte, es könnte etwas eleganter. Wenn ich / Jemand kann nicht denken, ein anderer Ansatz, es wird funktionieren, nur versuchen zu vermeiden, immer unter den einfachen Weg 🙂
  • Die Erklärung ist falsch, das Letzte argument ist, IntPtr. Pass IntPtr.Null.
  • Ich Wette, das ist für auto-spray-Steuerelement in csgo genau Das was ich brauche, sowieso
InformationsquelleAutor Lucas | 2011-12-19
Schreibe einen Kommentar