I'm currently designing an image viewer that allows the user to input her e-mail and get the images digitally. The part that troubles me is getting the on-screen keyboard to close. I use this piece of code to start the windows process:
string progFiles = @"C:\Program Files\Common Files\Microsoft Shared\ink";
string keyboardPath = Path.Combine(progFiles, "TabTip.exe");
Process keyboardProc = Process.Start(keyboardPath);
After which i open a VB InputBox to prompt for the e-mail address (for which i use the on-screen keyboard, since the application will be shown on a touch screen). After this prompt I want to close the process automatically.
I've tried to close the process with the following:
keyboardProc.Kill();
keyboardProc.Dispose();
keyboardProc.Close();
keyboardProc = null;
None of them works and simply throws the exception:
An unhandled exception of type 'System.InvalidOperationException' occurred in System.dll
Additional information: Cannot process request because the process has exited.
I also tried identifying the process by ID and closing it this way, didn't work either. I also had a look at: C#/.NET: Closing another process outside the main window but didn't get it working either.. :(
I'm pretty new to C# and this is the first time I've invoked a windows process from code - am I missing something?
Thank you very much in advance!
u can do:
I had trouble with this too. For some reason this works, although it kills all open TabTip processes.
The following code will open/close Touch Keyboard on Window 10 the quickest, compared to executing/closing TabTip.exe directly. (tested on low power tablet).