Mouse simulieren



  • Hallo,
    ich möcht über einen Dialog die Mouse simulieren.
    Das heisst, ich habe einen Dialog mit den Mouse Buttons (Left, Right).
    Nun soll über den Dialog das gleiche passieren wie mit der Mouse.
    Recht -> Kontextmenü
    Links -> Cursor setzen usw.

    Hat jemand eine Idee?
    Ich habe es schon mit SendInput() probiert.
    geht nicht so richtig.
    Muss man erst noch die Cursor pos holen?
    Aber die ist ja auf dem Dialog........... 😕



  • einfacher ist es vielleicht wenn du es über die tastatur (mittels virtual keys) simulierst. mit tabulator kommst du in dein text feld und eine taste die das kontextmenü aufruft gibt es auch (neben windows taste -> keine ahnung wie die heisst)

    mfg, TFTS

    PS: was willst du denn ganz konkret machen?



  • Das ist alles nix, was mich weiterbringen könnte.
    Es gibt ja auch Anwendungen, bei denen die rechte Mouse Taste ne andere Funktion haben, wie das Kontextmenü.
    Folgendes habe ich jetzt.

    void blablabla::RightMouseButton
    {
      UINT nInputs=0;
    
      m_KeyInput[nInputs].type            = INPUT_MOUSE;
      m_KeyInput[nInputs].mi.dwFlags      = MOUSEEVENTF_RIGHTDOWN;
      m_KeyInput[nInputs].mi.dx           = 0;    
      m_KeyInput[nInputs].mi.dy           = 0;    
      m_KeyInput[nInputs].mi.time         = 0;
      m_KeyInput[nInputs].mi.dwExtraInfo  = 0;
      m_KeyInput[nInputs++].mi.mouseData  = 0;
    
      if (nInputs) 
      {
      	SendInput(nInputs,m_KeyInput,sizeof(INPUT));
     	}
    
      Sleep(1000);
    
      m_KeyInput[nInputs].type            = INPUT_MOUSE;
      m_KeyInput[nInputs].mi.dwFlags      = MOUSEEVENTF_RIGHTUP;
      m_KeyInput[nInputs].mi.dx           = 0;    
      m_KeyInput[nInputs].mi.dy           = 0;    
      m_KeyInput[nInputs].mi.time         = 0;
      m_KeyInput[nInputs].mi.dwExtraInfo  = 0;
      m_KeyInput[nInputs++].mi.mouseData  = 0;
    
      if (nInputs) 
      {
    	SendInput(nInputs,m_KeyInput,sizeof(INPUT));
      }
    }
    

    So dass funktioniert aber nur, wenn ich innerhalb der Sekunde (Sleep(1000))
    den Cursor in die andere Anwendung bringe.
    Weiss jemand, wie ich den Cursor in das Hintergrund Window bringe?


Anmelden zum Antworten