none
Fehler bei Autoclicker RRS feed

  • 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

    Donnerstag, 2. Mai 2019 14:39

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);

    Donnerstag, 2. Mai 2019 21:17

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);

    Donnerstag, 2. Mai 2019 21:17
  • 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 

    Freitag, 3. Mai 2019 14:10
  • 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.

    Donnerstag, 9. Mai 2019 13:38
    Administrator
  • Hallo Ditmar, 

    ich weiß ich antworte recht spät.

    Die Funktion hab ich mir nicht ausgedacht, wegen irgend einem Fehler hat die IDE sie vorgeschlagen...

    Jetzt habe ich sie einfach entfernt und alles funktioniert bestens!

    Danke für Deine Hilfe

    LG

    Dienstag, 21. Mai 2019 13:37