Befehl damit Maus klickt



  • Also ich will ein Programm schrieben das einem 5 Sekunden Zeit gibt und dann einfach mit der linken Maustaste klickt.Mein Betriebssystem ist Windows.Der Code sieht bis jetzt so aus:

    #include<iostream>
    using namespace std;

    int main()

    {
    cout<<"Beweg die Maus zu dem Juwel ";
    Sleep(5000)
    Schleife;
    Befehl damit Maus klickt
    goto Schleife;
    }

    Wie lautet der fehlende Befehl??



  • kein plan wie des mit ner konsolenanwendeung funktioniert....
    aber nach schleife sollte auf jeden fall ein doppelpunkt stehen 😉



  • jo aber mir fehlt ja immer noch diese Funktion



  • Mit SendInput kannst du die Maus kontrollieren.
    Aber ich weiß nicht, ob das mit der Konsole funktioniert.



  • qasdfgh schrieb:

    Mit SendInput kannst du die Maus kontrollieren.
    Aber ich weiß nicht, ob das mit der Konsole funktioniert.

    SendInpout ist eine normale WinAPI und hat somit weder was mit Console noch mit Window zu tun...



  • Auf was willst du mit deiner Maus klicken?

    Schreibst du in WinAPI oder in einer Konsolenanwendung?



  • Da unter der NTVDM.EXE immer noch der unter DOS für Microsoft Mice verwendete Mousedriver verwendet wird, kannst du folgendes verwenden:

    typedef struct {
    	int x, y;
    } COORD;
    
    /*
      Versucht die maus zu initialisieren
      gibt false bei Fehler zurück
      bei Programmstart einmalig ausführen
    */
    
    bool mouseInit()
    {
      int result;
      asm {
        XOR    AX, AX
        INT    0x33
        MOV    [result], AX
      }
      return ( result == -1 )
    }
    
    /*
      liefert
      1 bei linker,
      2 bei rechter maustaste,
      ansonst 0
      schreibt die aktuelle Cursorposition nach *pox->x bzw *pos->y
    */
    
    int getCursorPos( COORD *pos )
    {
      int x = 0, y = 0, flags = 0;
      asm {
        MOV    AX, 0x03
        INT    0x33
        MOV    [x], CX
        MOV    [y], DX
        MOV    [flags], BX
      }
      pos->x = x / 8;
      pos->y = y / 8;
      return flags;
    }
    
    /*
      Mauscursor anzeigen bzw. verstecken
    */
    
    void showMouseCursor( bool show )
    {
      int function = show ? 0x01 : 0x02;
      asm {
        MOV    AX, [function]
        INT    0x33
      }
    }
    

    HIH
    Greetz, Swordfish



  • Swordfish schrieb:

    Da unter der NTVDM.EXE

    OT: Wie kommst Du den auf NTVDM!??? Das Forum heisst doch WinAPI und nicht DOS...


Anmelden zum Antworten