Zum Inhalt springen

C# Maus Frage


new

Empfohlene Beiträge

Hi ^^

Ich habe ma wieder ein Problem in C#.

Es ist folgendes:

Ich will das die Maus an eine bestimmte Position kommt und dort 1mal die Schaltfläche anklickt.

Also die Maus an verschiedene Punkte zu bekommen ist einfach.

Point startingPoint = panel1.Location;

            startingPoint.Offset(500, 200);

            Cursor.Position = PointToScreen(startingPoint);

Aber wie kann ich jetzt den Maus klick simulieren ?

Habe es bereits versucht mit:

- SendKeys.Send ( anscheinend gehört die Maus nicht dazu .. )

Habe bereits in Google nachgeschaut und da stande was von Sachen einbinden. Ist das wirklich so das man mit C# keinen einfachen Mausklick simulieren kann ?

Wenn man wirklich keinen Maus klick mit c# machen kann, dann müsste ich es wohl mit c++ über dll einbinden, aber bevor ich das mache wollte ich nochma fragen ob das wirklich so ist.

Danke für eure Hilfe!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hey !

@TDM

Bei mir kommt leider eine Fehlermeldung bei:

How to: simulate a mouse click

Die Fehlermeldug lautet:

PInvokeStackImbalance wurde erkannt.

Nachricht:

- anscheinend wurde das gleichgewicht vom Stapel gestört.

mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0);

@ nubbeldupp

So ählich hatte ich es vor. Ich wollte zwar kein Bot schreiben aber ich hatte vor mich über ein Programm automatisch einzuloggen.

Bisher hatte ich das über tasten gemacht doch die mus sich jeden Tag ändern, weil sich die werbung auch ändert ... und das nervt und deswegen wollte ich das jetzt über Pixel und einem Mausklick steuern.

Kannst du mir ein Weg sagen, wie ich das machen kann ? einen Mausklick zu simulieren ?

Auf das Webfenster hab ich schon zugegriffen ... es fehlt nur noch der blöde Mausklick xD

Danke für eure Hilfe!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Fehlermeldug lautet:

PInvokeStackImbalance wurde erkannt.

Nachricht:

- anscheinend wurde das gleichgewicht vom Stapel gestört.

mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
Mach mal nen Zweizeiler draus:
mouse_event(MOUSEEVENTF_LEFTDOWN, X, Y, 0, 0);

mouse_event(MOUSEEVENTF_LEFTUP, X, Y, 0, 0);

@ nubbeldupp

So ählich hatte ich es vor. Ich wollte zwar kein Bot schreiben aber ich hatte vor mich über ein Programm automatisch einzuloggen.

Bisher hatte ich das über tasten gemacht doch die mus sich jeden Tag ändern, weil sich die werbung auch ändert ... und das nervt und deswegen wollte ich das jetzt über Pixel und einem Mausklick steuern.

Wäre da VBS nicht sinnvoller?

Zumal: Muss es denn die Maus sein? Man kann doch auch ein Enter schicken.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@TDM

Leider funktionierts immer noch net ...

Es kommt immer noch die selbe fehlerfunktion.

In VBS ?

Weiß nicht kenne mich in VB nicht so aus xD

Und ein Einter klick würde mir nix nützen ^^

Könnte ich das so machen, dann ich z.b die Taste x als ein Mausklick umstelle ?

Denn in verschiedenen Games kann man das auch umstellen ...

Würde das was nützen ?

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi ^^

Sry kann jetzt erst wieder zurück schreiben.

Ok ich stelle jetzt am besten ma den gesamten Codeausschnitt rein ...

Einmal was ich alles benutze:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Runtime.InteropServices;
mausklick:
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]

        public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);


        private const int MOUSEEVENTF_LEFTDOWN = 0x02;

        private const int MOUSEEVENTF_LEFTUP = 0x04;

        private const int MOUSEEVENTF_RIGHTDOWN = 0x08;

        private const int MOUSEEVENTF_RIGHTUP = 0x10;


        public void DoMouseClick()

        {

            //Call the imported function with the cursor's current position

            int X = Cursor.Position.X;

            int Y = Cursor.Position.Y;

            mouse_event(MOUSEEVENTF_LEFTDOWN, X, Y, 0, 0);

            mouse_event(MOUSEEVENTF_LEFTUP, X, Y, 0, 0);

        }
Aufruf:
 private void anfangen_Click(object sender, EventArgs e)

        {

            Point startingPoint = panel1.Location;

            startingPoint.Offset(500, 200);

            Cursor.Position = PointToScreen(startingPoint);

            DoMouseClick();

            SendKeys.Send("{RIGHT}");

        }

Ich hoffe das es kein einfacher Tippfehler ist, denn das wär bissel doof ^^

Vielen Dank für eure Hilfe!

Bin leider noch ein Anfänger in C#

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...