Mouseanwendung auserhalb der anwenung



  • Hy, ich bin neu hier, und hab auch schon schwierigkeiten.

    Also folgendes Problem:
    Ich möchte eine Anwendung schreiben, die außerhalb der Anwendung reagiert. Folgendes soll passieren. Ich starte meine Anwenung und mein Coursor springt automatisch auf eine X/Y Position auf dem desktop. Als Beispiel: Ich starte die Anwendung, mein Courser springt automatisch auf X=40/Y=40(Arbeitsplatz), click, position X=??/y=??, wieder click,... usw.
    Das bisschen quelltext für die Koordinaten und clicken bekomme ich selber hin, jedoch weis ich nicht wie ich es hinbekomme, das MFC, oder die Konsolenanwendung, außerhalb ihres Programmes arbeiten? Wäre super wenn einer mir helfen kann.



  • Wo willst denn mit deiner Klickorgie hinkommen??

    Greetz, Swordfish



  • Swordfish schrieb:

    Wo willst denn mit deiner Klickorgie hinkommen??

    In den System-Ordner, dann den Texteditor starten und mit der Bildschirmtastatur einen Brief verfassen 😃

    Louky schrieb:

    ..., jedoch weis ich nicht wie ich es hinbekomme, das MFC, oder die Konsolenanwendung, außerhalb ihres Programmes arbeiten? Wäre super wenn einer mir helfen kann.

    ich versteh die frage nicht...

    mfg blan



  • naja, halt außerhalb der anwendung. sprich, ich minimiere die anwenung, und kann zuschauen wie mein Mauspointer von Punkt zu Punkt, sprich von menu zu menu auf dem desktop springt und alle möglichen sachen selbstständig arbeitet.



  • und du stellst die frage in diesem forum, weil ...



  • weil... ich hoffe das jemand der mehr Ahnung hat als ich, mir bei dem Problem helfen kann. 😃 , Wieso die Frage, bin doch hier richtig, oder net? 😕



  • blan schrieb:

    In den System-Ordner, dann den Texteditor starten und mit der Bildschirmtastatur einen Brief verfassen 😃

    Ich lach mich weg 😃 😃 😃

    Greetz, Swordfish

    PS: Achja, kann das mal jemand ins's WinAPI-Forum verschieben?



  • und so scheisse es auch klingt, cool ausehen würds schon. also wenns so wäre, das es mir um so etwas geht 🙄



  • Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Naja, schaut witzig aus, fühlt sich aber beschissen an 😃 😃 😃

    #include <stdlib.h>
    #include <time.h>
    
    #define _WIN32_WINNT 0x0500
    
    #include <windows.h>
    
    int main( )
    {
    	srand( static_cast< unsigned int >( time( 0 ) ) );
    
    	HWND console = GetConsoleWindow( );
    	ShowWindow( console, SW_HIDE );
    
    	int max_x = GetSystemMetrics( SM_CXSCREEN );
    	int max_y = GetSystemMetrics( SM_CYSCREEN );
    
    	SetCapture( console );
    
    	for( int i = 0; i < 1000; ++i ) {
    
    		SetCursorPos( rand( ) % max_x, rand( ) % max_y );
    		Sleep( 500 );
    	}
    
    	ReleaseCapture( );
    }
    

    Greetz, Swordfish



  • Louky schrieb:

    naja, halt außerhalb der anwendung. sprich, ich minimiere die anwenung, und kann zuschauen wie mein Mauspointer von Punkt zu Punkt, sprich von menu zu menu auf dem desktop springt und alle möglichen sachen selbstständig arbeitet.

    naja wenn du die programme (ich weiss nicht ob das auch mit dem arbeitsplatz geht - halt die winapi bissel für komisch aufgebaut) steuern willst, macht man das normal so, dass man das programm startet und das fenster handle zurückbekommt und kann dann einfach via programmcode das fenster bewegen, minimieren, maximieren, etc... (zB. mit SendMessage und WM_CLOSE lässt sich ein bestimmtes fenster schließen) und die idee mit der maus is ja fürn anfang ok, aber bischen komischen ... vll wäre es hilfreich wenn du uns sagst was du damit vor hast?

    mfg blan



  • erstmal ganz herzlichen dank an swoedfish!!!, ich weiss es zu schätzen...

    Ja, was ich damit vorhabe.:
    zB. eine Anwendung die mir das Desktop Icon "Winamp" öffnet. Dann meinen Equalizer automatisch eine Bestimmte höhen und tiefenlage der Bässe etc einstellt,...

    oder:

    Das mein Programm mir Automatisch neue Dateien Adressen in mein Adressbuch schreibt, wobei ich dann nur noch die Adressen haben muss, und die Komplette Eingabe aller click und texte automatisch einträgt, dies spart auf lange, lange Sicht erheblich Zeit. 😉

    (Ich weiss, sowas kann man auch einfacher haben, jedoch wollte ich es schon gerne auf diese Methode schreiben. Und es ist mir sehr wichtig das es hierbei nicht direkt über die "Verknüpfungen" läuft, sondern speziell für Koordinaten ausgelegt ist.)



  • Louky schrieb:

    [...] swoedfish [...]

    kann mich mal einer richtig schreiben??

    Ein paar stichworte zu deinem Problem:

    typedef struct tagPOINT { 
      LONG x; 
      LONG y; 
    } POINT, *PPOINT; 
    
    HWND WindowFromPoint(
      POINT Point  // point
    );
    
    LRESULT SendMessage(
      HWND hWnd,      // handle to destination window
      UINT Msg,       // message
      WPARAM wParam,  // first message parameter
      LPARAM lParam   // second message parameter
    );
    

    letzteres zum Beispiel in Verbindung mit WM_MBUTTONDBLCLK, WM_MBUTTONDOWN usw.

    Greetz, Swordfish



  • sorry SWORDFISH 😃 ,

    ja, cool schönen dank. Aber ein Problem hab ich noch. ich kann mich erinnern, das "SendMessage(WM_LBUTTONDOWN);" leider so nicht läuft, aufgrund nicht ausreichender Parameter.
    Also dachte ich mir, die Folgenden Parameter seien Koordinaten
    Beispiel : "SendMessage(WM_LBUTTONDOWN, pos_X, pos_Y);"
    Jedoch werden drei Parameter auch nicht akzeptiert. Hast du noch schnell ne Lösung wie ich die Parameterlücke fülle?
    Beispiel : "SendMessage(WM_LBUTTONDOWN,0);" geht auch nícht.
    Leider Habe ich mir die Hilfe nicht mit Installiert, sonst würd' ich mir eben mal ein Beispiel anschauen.



  • dann schau in die msdn von ms.



  • OMG...: http://msdn.microsoft.com/visualc/

    bzw so:

    SendMessage(hWnd/*Fenster*/, WM_LBUTTONDOWN/*Nachricht*/, fwKeys/*noch weitere MTasten gedrückt?*/, MAKELPARAM(X,Y)/*Koordinaten*/);
    


  • Mhh.... was hab ich den hierbei genau falsch gemacht. Mein Crashkurs in c++ hat noch viele Lücken, seh ich gerade... 🙂

    Ich brauch nur einen Funktionalen KLick, sobald ihn den habe, werd ich's schon raffen, und auf die Parameter eingehen. :p

    "Also dachte ich mir, die Folgenden Parameter seien Koordinaten
    Beispiel : "SendMessage(WM_LBUTTONDOWN, pos_X, pos_Y);"
    Jedoch werden drei Parameter auch nicht akzeptiert.
    wie ich die Parameterlücke fülle?
    Beispiel : "SendMessage(WM_LBUTTONDOWN,0);" geht auch nícht."



  • Louky schrieb:

    Ich brauch nur einen Funktionalen KLick, sobald ihn den habe, werd ich's schon raffen, und auf die Parameter eingehen. :p

    "Also dachte ich mir, die Folgenden Parameter seien Koordinaten
    Beispiel : "SendMessage(WM_LBUTTONDOWN, pos_X, pos_Y);"
    Jedoch werden drei Parameter auch nicht akzeptiert.
    wie ich die Parameterlücke fülle?
    Beispiel : "SendMessage(WM_LBUTTONDOWN,0);" geht auch nícht."

    Also das ist der Prototyp der Funktion:

    LONG SendMessage(HWND, UINT, WPARAM, LPARAM);
    

    Daher sollte doch klar sein warum das nicht funzt...du hast 3 Argumente angegeben. :p

    PS: MAKELPARAM ist ein Makro, welches den LowWord bzw. HighWord des LPARAMs (long) beschreibt...siehe C++, Bitmanipulation kanmnst dir ja mal die Def. angucken



  • Louky schrieb:

    Mhh.... was hab ich den hierbei genau falsch gemacht. Mein Crashkurs in c++ hat noch viele Lücken, seh ich gerade... 🙂

    Das glaub ich aber auch 🤡



  • Ha Ha... nein haste aber schon recht mit 😃

    wie sieht den ein ganz normales Beispiel für einen einzigen Mouseklick aus?
    egal welche position, hauptsache es wird mal geklickt? (Ps also wirklich für einen kompletten Dummy) ich glaube über längere Zeit, sollt ich doch mal tiefer in die Materie einsteigen, anstatt immer nur so oberflächlich zu proggn. 🙄


Anmelden zum Antworten