C# Keysend und Backgroundworker

03/07/2010 14:49 Wissom#1
Hi hab da ein Problem.
Kann es sein das der Befehl SendKeys innerhalb eines Backroundworkers nicht ausgeführt werden kann bzw der Befehl nicht an das aktive fenster sondern an den mainthread geschickt werden????

Bzw hat jemand eine Lösung wie man das umgehen kann das SendKeys an das richtige Fenster die Tastenanschläge schick???

EDIT:
Der Code der dananch ausgeführt werden soll wird auch nicht ausgeführt.

Code:
while (Run1.Break == false)
            {
                MessageBox.Show("Test");
                SendKeys.Send("123");
                MessageBox.Show("Test2");
                SendKeys.Send("456");
                MessageBox.Show("Erfolgreich");
            }

            if (Run1.Break == true)
            {
                MessageBox.Show("Bot pausiert");

            }
Das der Code. Nach der ersten MessageBox schaltet sich der Code aus und es geschieht nix weiter.
03/07/2010 15:53 P-a-i-n#2
PHP Code:

while (Run1.Break == false)
            {
                
MessageBox.Show("Test");
                
SendKeys.Send("123");
                
SendKeys.Send"{ENTER}" ); // oder was immer er drücken soll der hotkey kommt in die geschweifte klammer rein
                
MessageBox.Show("Test2");
                
SendKeys.Send("456");
                
SendKeys.Send"{ENTER}");
                
MessageBox.Show("Erfolgreich");
            }

            if (
Run1.Break == true)
            {
                
MessageBox.Show("Bot pausiert");

            } 
so richtig versteh ich aber nicht was du bezwecken willst
edit
C# ist recht gut du kannst dir doch das holen wo er es reinschicken soll

edit
und wieso nichts geschieht woher soll das programm wissen wo du den text hin sendest ;)
03/07/2010 17:11 Wissom#3
Ne das isses nicht.
Im normalfall soll er nur eine

while (Run1.Break == false)
{SendKeys.Send="1")}

ausführen.
Den anderen Code hab ich nur dazu geschrieben um zu testen wo er hängen bleibt.
Dabei sendet der befehl SendKey an das aktive Fenster den Wert "1" übergeben und zwar in diesem fall erstmal an Word.
Macht er aber nicht. Sobald er an den ersten SendKeys Befehl kommt bricht er die Schleife ab bzw. bleibt daran hängen.
Das heisst die erste MessageBox teilt er mir mit. Die zweite jedoch nicht mehr.
Kopier ich den Code aus dem background worker heraus und setze ihn in den Hauptthread funktioniert alles also liegt es offensichtlich daran das er die Funktion aus dem Backgroundworker heraus nicht richtig verarbeiten kann.
03/08/2010 00:05 P-a-i-n#4
dann mach den bgw raus und arbeite mit einer logfile