Laden...

Beim Drücken von Taste bestimmte Eingaben senden & beim Drücken einer anderen taste senden beenden

Erstellt von Qweide vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.509 Views
Q
Qweide Themenstarter:in
8 Beiträge seit 2015
vor 8 Jahren
Beim Drücken von Taste bestimmte Eingaben senden & beim Drücken einer anderen taste senden beenden

abend,

ich möchte, dass mein programm beim drücken einer taste bestimmte tastatureingaben sendet und beim drücken einer anderen taste dieses senden beendet.

damit mein programm auf den zweiten tastendurck hört, habe ich das senden der tastatureingaben in einen backgroundworker verlegt.
die zu sendenden tasten stehen in einer textbox, deren inhalt über ein array in die dowork methode übergeben wird.
hier der code:

void bw_DoWork(object sender, DoWorkEventArgs e)
        {
            string[] toSend = (string[])e.Argument;
            while (true)
                SendKeys.Send(toSend[0].ToString());
                
        }

beim ausführen bekomme ich eine InvalidOperationException mit den informationen, dass sendkeys nicht innerhalb der anwendung ausgeführt werden kann, da die anwendung keine windows-meldungen verarbeitet.

kann mir jemand helfen?
lg

3.170 Beiträge seit 2006
vor 8 Jahren

Hallo,

offenbar handelt es sich um eine Konsolenanwendung?
Damit dort auch Windows-Nachrichten verarbeitet werden, brauchst Du irgendwo in Deiner Anwendung ein Application.Run(), um die MessageLoop zu starten. Beachte, dass diese Methode den Thread, in dem sie aufgerufen wird, blockiert, bis die MessageLoop wieder beendet wird.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

Q
Qweide Themenstarter:in
8 Beiträge seit 2015
vor 8 Jahren

Hallo, danke für deine Antwort. Jedoch handelt es sich um windows forms. es war auch von einer textbox die rede.

EDIT:
wollte an der stelle nur sagen, dass es jetzt geht. mit SendKeys.SendWait(text); funktioniert es.