Ścina bo robisz to w obrębie głównego wątku aplikacji. Utwórz nowy wątek ew daj BackgroundWorker'a na formę i wykonaj w nim
POPRAWIONY kod.
Zdajesz sobie sprawę że to powinno lekko inaczej wyglądać...
Jeśli chcesz 10x wysłać klawisz do jednego okna:
Kod :
foreach (var proc in Process.GetProcessesByName("Tibianic"))
{
myWindow = proc.MainWindowHandle;
while (i < 10)
{
SetForegroundWindow(myWindow);
Thread.Sleep(10000);
SendKeys.Send("{ENTER}");
i++;
}
}
Jeśli raz do każdego:
Kod :
foreach (var proc in Process.GetProcessesByName("Tibianic"))
{
myWindow = proc.MainWindowHandle;
SetForegroundWindow(myWindow);
Thread.Sleep(10000);
SendKeys.Send("{ENTER}");
i++;
}
Zależy co chcesz osiągnąć :)
Pętla foreach leci po każdej instancji klasy w tym przypadku procesu mającego w nazwie "tibianic". Więc za pętlą będziesz miał tylko ostatni obiekt.
Zakładki