title: How do I reliably call the on screen keyboard in windows 10?
body: <p>I have a fullscreen C# .NET application I need to be able to call the On-Screen-Keyboard.
  In Windows 7, I used: 
  <code>Process.Start(C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe;</code> </p>
  
  <p>With older builds of Windows 10, I was able to use <code>Process process = Process.Start(new ProcessStartInfo(((Environment.GetFolderPath(Environment.SpecialFolder.System) + @"\osk.exe"))));</code> (This gets the System32 location and appends the executable name.)</p>
  
  <p>That worked until recently.</p>
  
  <p>However now the executable is in <code>C:\Windows\WinSxS\amd64_microsoft-windows-osk_31bf3856ad364e35_10.0.17134.1_none_903d5fc3c319176b\osk.exe</code>
  So my question is, is there a reliable way to call the on-screen-keyboard that will work for the foreseeable future? </p>
  
  <p>Also I'd be interested in using the touch keyboard but that's also in an odd location- <code>C:\Windows\WinSxS\amd64_microsoft-windows-tabletpc-inputpanel_31bf3856ad364e35_10.0.17134.1_none_f70fa21de0acb308\TabTip.exe</code>
  The second windows does an update and that version updates in the folder path, a static reference to the folder becomes worthless.</p>