Benutzer mit den meisten Antworten
Fehler bei Autoclicker

Frage
-
Hallo, ich bin gerade dabei einen Autoclicker zu basten, leider geht gerade garnichts mehr:
"Die Anwendung befindet ssich im Haltemodus", begrüßt mich jetz, zusammen mit diesem Fehler:
System.TypeLoadException
HResult=0x80131522
Nachricht = Der Typ "Autoclicker.Form1" der Assembly "Autoclicker, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" konnte nicht geladen werden, da die Methode "mouse_event" keine Implementierung (keine RVA) hat.
Quelle = <Die Ausnahmequelle kann nicht ausgewertet werden.>
Stapelüberwachung:
<Die Ausnahmestapelüberwachung kann nicht ausgewertet werden.>Das ist mein Code:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Runtime.InteropServices; using System.Threading; using System.Runtime; namespace Autoclicker { public partial class Form1 : Form { const uint MOUSEEVENTF_ABSOLUTE = 0x8000; const uint MOUSEEVENTF_LEFTDOWN = 0x0002; const uint MOUSEEVENTF_LEFTUP = 0x0004; const uint MOUSEEVENTF_MIDDLEDOWN = 0x0020; const uint MOUSEEVENTF_MIDDLEUP = 0x0040; const uint MOUSEEVENTF_MOVE = 0x0001; const uint MOUSEEVENTF_RIGHTDOWN = 0x0008; const uint MOUSEEVENTF_RIGHTUP = 0x0010; const uint MOUSEEVENTF_XDOWN = 0x0080; const uint MOUSEEVENTF_XUP = 0x0100; const uint MOUSEEVENTF_WHEEL = 0x0800; const uint MOUSEEVENTF_HWHEEL = 0x01000; public uint CPS; public Form1() { InitializeComponent(); } public static void Clicker(string Index) { if (Index == "Links") { uint X = (uint)Cursor.Position.X; uint Y = (uint)Cursor.Position.Y; mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0); //mouse_event(MOUSEEVENTF_LEFTDOWN, Convert.ToInt32(X), Convert.ToInt32(Y), 0, 0); //mouse_event(MOUSEEVENTF_LEFTUP, X, Y, 0, 0); } } private static void mouse_event(uint mOUSEEVENTF_LEFTUP, uint x, uint y, int v1, int v2) { throw new NotImplementedException(); } private void button1_Click(object sender, EventArgs e) { try { CPS = Convert.ToUInt32(textBox2.Text); } catch { textBox2.Text = "Bitte nur Ganzzahlen!"; } Button1TextSwitch("Start", "Stopp"); Thread.Sleep(123); while (CPS > 1 || button1.Text == "Stopp") { Clicker(textBox1.Text); } } private void Button1TextSwitch(string a, string b) //Wechselt bei Aufrufung den Text zwischen zwei Strings { if (button1.Text == a) { button1.Text = b; } else if (button1.Text == b) { button1.Text = a; } } public extern void mouse_event(uint dwFlags, int dx, int dy, uint dwData, int dwExtraInfo); } }
Das Programm soll erstmal nur einen Linksclick an der Stelle ausführen, wo sich gerade der Cursor befindet, doch das mit dem mouse_event habe ich noch nie zum Funktionieren bekommen.
Ich freue mich über jede Hilfe
LG Lukas
Antworten
-
Du hast zwar mouse_event als extern deklariert, aber nicht angegeben wo diese Funktion zu finden ist. Daher weiß die Runtime dann nicht was damit zu tun ist.
Die mouse_event-Funktion befindet sich in der user32.dll. Das musst du nur zur Methode mit angeben.
[DllImport("user32.dll")] private static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
- Als Antwort vorgeschlagen Florian Haupt Mittwoch, 22. Mai 2019 12:24
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 31. Mai 2019 13:11
Alle Antworten
-
Du hast zwar mouse_event als extern deklariert, aber nicht angegeben wo diese Funktion zu finden ist. Daher weiß die Runtime dann nicht was damit zu tun ist.
Die mouse_event-Funktion befindet sich in der user32.dll. Das musst du nur zur Methode mit angeben.
[DllImport("user32.dll")] private static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
- Als Antwort vorgeschlagen Florian Haupt Mittwoch, 22. Mai 2019 12:24
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 31. Mai 2019 13:11
-
Danke für deine Hilfe,
was du geschrieben hast habe ich gemacht, jetzt kommt leider nur dieser Fehler:
System.NotImplementedException
HResult=0x80004001
Nachricht = Die Methode oder der Vorgang ist nicht implementiert.
Quelle = Autoclicker
Stapelüberwachung:
bei Autoclicker.Form1.mouse_event(UInt32 mOUSEEVENTF_LEFTUP, UInt32 x, UInt32 y, Int32 v1, Int32 v2) in C:\Users\Lukas\source\repos\_t\Autoclicker\Autoclicker\Form1.cs: Zeile51
bei Autoclicker.Form1.Clicker(String Index) in C:\Users\Lukas\source\repos\_t\Autoclicker\Autoclicker\Form1.cs: Zeile43
bei Autoclicker.Form1.button1_Click(Object sender, EventArgs e) in C:\Users\Lukas\source\repos\_t\Autoclicker\Autoclicker\Form1.cs: Zeile64
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
bei System.Windows.Forms.Button.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.Run(Form mainForm)
bei Autoclicker.Program.Main() in C:\Users\Lukas\source\repos\_t\Autoclicker\Autoclicker\Program.cs: Zeile19
Ich weiß echt nicht was ich da machen muss
-
Hallo xDouble_,
jetzt kommt leider nur dieser Fehler:
System.NotImplementedException HResult=0x80004001 Nachricht = Die Methode oder der Vorgang ist nicht implementiert.
In Deinem Codeausschnitt ist nicht nur die importierte Funktion deklariert, sondern auch Deine eigene gleichnamige Funktion mit ebenfalls fünf Parametern zu finden, die die oben aufgeführte Ausnahme auslöst:
private static void mouse_event(uint mOUSEEVENTF_LEFTUP, uint x, uint y, int v1, int v2) { throw new NotImplementedException(); }
Wozu brauchst Du sie? Wie Du die Funktion mouse_event verwenden kannst, zeigen folgende Threads :
Mouse Properties
How can I do virtual mouse click?Gruß,
Dimitar
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
- Bearbeitet Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 9. Mai 2019 13:38
-