Mausklick an eine bestimmte Stelle in einer Anwendung machen



  • Hallo, gibt es eine Funktion mit der ich einen Mausklick in eine andere Anwendung machen kann? (Ohne das die Zielanwendung im Vordergrund ist)



  • Das ist zu unpräzise gefragt! Du hast zwei Anwendungen, also zwei unabhängige Prozesse im System. Jetzt soll der jeweils andere Prozess von einem Mausklick erfahren? Das geht, z.B. mit SendMessage, wenn dafür ein Zielfenster HWND bekannnt ist.



  • Ich probier gerade mal mit SendMessage rum aber ich versteh den letzten Parameter nicht.

    In der MSDN steht zum letzten Parameter:

    lParam 
    
    The repeat count, scan code, extended-key flag, context code, previous key-state flag, and transition-state flag, as shown following.Bits	Meaning
    0-15	The repeat count for the current message. The value is the number of times the keystroke is autorepeated as a result of the user holding down the key. If the keystroke is held long enough, multiple messages are sent. However, the repeat count is not cumulative.
    16-23	The scan code. The value depends on the OEM.
    24	Indicates whether the key is an extended key, such as the right-hand ALT and CTRL keys that appear on an enhanced 101- or 102-key keyboard. The value is 1 if it is an extended key; otherwise, it is 0.
    25-28	Reserved; do not use.
    29	The context code. The value is always 0 for a WM_KEYDOWN message.
    30	The previous key state. The value is 1 if the key is down before the message is sent, or it is zero if the key is up.
    31	The transition state. The value is always 0 for a WM_KEYDOWN message.
    

    Aber das hilft mir nicht weiter.

    HWND hwnd=FindWindow(0,"Rechner");
    
    SendMessage(hwnd,WM_KEYDOWN,VK_F1, 0 );
    


  • Eigentlich sollte man mit SendMessage keine Klicks simulieren.
    Du solltest es erst in den Vordergrund bringen und SendInput verwenden.
    Aber wenn das nicht geht, musst du mit SendMessage leben.


Anmelden zum Antworten