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ę!