Mouseanwendung auserhalb der anwenung



  • 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. 🙄



  • Die Mous kann man sinnvoll nur mit

    SendInput
    

    simulieren.



  • Wenn's dich glücklich macht:

    #include <iostream>
    #include <string>
    #include <sstream>
    
    #include <windows.h>
    
    using namespace std;
    
    int main( )
    {
    	POINT pt;
    	pt.x = 100;
    	pt.y = 100;
    
    	HWND window = WindowFromPoint( pt );
    
    	if( !window ) {
    		stringstream ss;
    		ss << "There is no window at ( " << pt.x << " / " << pt.y << " )!";
    		MessageBox( 0, ss.str( ).c_str( ), "Error:", MB_OK );
    		return 0;
    	}
    
    	SendMessage( window, WM_LBUTTONDOWN, MK_LBUTTON, ( ( (unsigned short) pt.y ) << 16 ) + ( (unsigned short ) pt.x ) );
    	SendMessage( window, WM_LBUTTONDOWN, 0, ( ( (unsigned short) pt.y ) << 16 ) + ( (unsigned short ) pt.x ) );
    }
    

    Zum testen am besten Paint maximiert öffnen, einen dicken Pinsel wählen, das compilierte programm unter Start->Ausführen aufrufen und zusehen.

    Greetz, Swordfish



  • Jochen hat (wie immer recht) SendInput( ) kann der User nicht durch "ungewünschte" Aktionen stören.

    Greetz, Swordfish



  • Löly, ....
    Also das:

    ( ( (unsigned short) pt.y ) << 16 ) + ( (unsigned short ) pt.x )
    

    entspricht dem:

    MAKELPARAM(pt.y,pt.x);
    

    Hmm oder sollte es zum mindestens...Swordfish ...hast du den Code getestet...läuft er ?

    Nicht das ich was gg. deine Schreibweise hab...ganz im Ggtl. ...ich wollte nur den Bezug dazu:

    CodeFinder schrieb:

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

    herstellen. 😉



  • Sicher läuft mein Code! 😃
    Ich hab' nur eine natürliche Abneigung gegen Makros (besonders gegen die der WinAPI).

    Greetz, Swordfish



  • Ob Makro hin oder her. Endlich... es läuft, muss mein Programm nur noch gescheit justieren, wegen den Koordinaten.

    Aber trotzem Danke für die Mühe, ich denk' 'en Lob hört man immer gern. 🙂



  • Schau dir trotzdem

    UINT SendInput(
      UINT nInputs,     // count of input events
      LPINPUT pInputs,  // array of input events
      int cbSize        // size of structure
    );
    

    (Jochen's Vorschlag) an!

    Greetz, Swordfish


Anmelden zum Antworten