Jak poprawnie zamknąć proces klawiatury ekranowej z C # winform?

Obecnie projektuję przeglądarkę obrazów, która pozwala użytkownikowi wprowadzić jej e-mail i uzyskać obrazy cyfrowo. Część, która mnie niepokoi, to zamknięcie klawiatury ekranowej. Używam tego fragmentu kodu do uruchomienia procesu systemu Windows:

string progFiles = @"C:\Program Files\Common Files\Microsoft Shared\ink";
string keyboardPath = Path.Combine(progFiles, "TabTip.exe");
Process keyboardProc = Process.Start(keyboardPath);

Następnie otwieram VB InputBox, aby poprosić o adres e-mail (dla którego używam klawiatury ekranowej, ponieważ aplikacja będzie wyświetlana na ekranie dotykowym). Po tym pytaniu chcę automatycznie zamknąć proces.

Próbowałem zamknąć ten proces, wykonując następujące czynności:

keyboardProc.Kill();
keyboardProc.Dispose();
keyboardProc.Close();
keyboardProc = null;

Żadne z nich nie działa i po prostu rzuca wyjątek:

An unhandled exception of type 'System.InvalidOperationException' occurred in System.dll
Additional information: Cannot process request because the process has exited.

Próbowałem również zidentyfikować proces przez identyfikator i zamknięcie go w ten sposób też nie zadziałało. Spojrzałem też na:C # /. NET: Zamykanie innego procesu poza głównym oknem ale nie działało to też .. :(

Jestem całkiem nowy w C # i po raz pierwszy wywołałem proces Windows z kodu - czy czegoś brakuje?

Z góry bardzo dziękuję!

questionAnswers(4)

yourAnswerToTheQuestion