Wie kann ich mehrere Programme gleichzeitig automatisieren (Tastatur- und Mauseingaben senden)

Wie kann ich mehrere Programme gleichzeitig automatisieren (Tastatur- und Mauseingaben senden)

Ich möchte ein Skript verwenden, um Ereignisse wie Tastatur- oder Mauseingaben zu senden und so ein anderes Programm zu automatisieren. Denken Sie beispielsweise an einen Bot, der ein Spiel spielt (obwohl ich keine Videospiele spiele).

Ich möchte dies mit mehreren (Skript-, Programm-)Paaren gleichzeitig tun.

Ich weiß, dass ich meine Maus und Tastatur unter Windows mit Autoit oder der Win32-API automatisieren kann, aber Windows hat das Konzept „aktiver Fenster“: Es gibt immer nur ein aktives Fenster und dies ist das Fenster, das Eingaben empfangen kann.

Aufgrund dieses "aktiven Fensters" kann ich nicht automatisierenmehrereProgramme auf einmal.

Welche Alternative habe ich?

BEARBEITEN:Ich muss die Programme automatisieren, ohne auf ein anderes Programm warten zu müssen. Das Wechseln des aktiven Fensters mithilfe von Tastaturkürzeln reicht dafür nicht aus. Außerdem möchte ich den Computer verwenden, während die Programme im Hintergrund automatisiert ausgeführt werden.

Antwort1

Aktualisiert, um Alternativen zum Blockieren der aktuellen Benutzereingaben einzuschließen

Autoit Mit autoit können Sie etwas Ähnliches tun wie

Opt("WinTitleMatchMode", 2)

While WinActive('Search')
    Send("{ALT DOWN}")
    Send("{TAB}")
    Send("{ALT UP}")
WEnd

Wobei „Suche“ einen Teil des Titels des Fensters enthält.

Wenn Sie die Reihenfolge des Fensterfokus kennen, können Sie die Tabulatortaste einfach oft genug zusätzlich senden, um zum angegebenen Fenster zu gelangen.

Die Reihenfolge für Alt+Tab ist immer in umgekehrter Fokusreihenfolge.

Win32 Dies wurde in anderen Threads beantwortet und geht tiefer in die Programmierung. Wenn Sie diesen Weg gehen möchten, müssen Sie die Windows-Nachrichten an den gewünschten Prozess senden. Ich würde mir Folgendes ansehen:Wie sende ich Tastenanschläge an ein Fenster, ohne es mithilfe der Windows-API aktivieren zu müssen?

Es scheint nicht zuverlässig zu sein und birgt viele Fallstricke. Es müssen Annahmen darüber getroffen werden, wie Tastatureingaben in den jeweiligen Anwendungen verarbeitet werden.

Da ich nicht weiß, was Sie erreichen möchten, schlage ich vor, eine virtuelle Maschine zu verwenden und dieser Instanz das Ausführen der Makros/Skripte zu erlauben. Dadurch sollte der Benutzer den Computer weiterhin verwenden können, ohne den Desktop zu blockieren, den er gerade verwendet.

verwandte Informationen