title: How to use Windows On-Screen Keyboard in C# WinForms
body: <ul>
  <li>VS 2010 </li>
  <li>Developing 32-bit app that runs on 64-bit OS (Windows 7, Windows 8 - desktop app)</li>
  <li>C#</li>
  <li>.NET 4.0 </li>
  <li>WinForms</li>
  </ul>
  
  <p>I have found many threads on launching the Windows on-screen keyboard (<code>osk.exe</code>) from an application, but I am running into some problems. It appears to be because I am running a 32-bit app on a 64-bit OS. I've tried the code posted by WooCaSh here: 
  <a href="https://stackoverflow.com/questions/9298515/keyboard-on-the-screen-in-winforms">Keyboard on the screen in WinForms</a> </p>
  
  <p>But none of the three different paths work for me. For the <code>sysnative</code> path, <code>Process.Start</code> fails with  <em>"Cannot find the path specified."</em> For the <code>system32</code> and <code>osk.exe</code> paths, I get the <em>"Could not start the on-screen keyboard"</em> error dialog.</p>
  
  <p>I found a possible workaround here, which is a little more complicated than what I was looking for (post by eryang): <a href="http://social.msdn.microsoft.com/Forums/en-US/netfx64bit/thread/10ebc62f-e6d7-4072-9fd1-ea3784a0966f/" rel="nofollow noreferrer">http://social.msdn.microsoft.com/Forums/en-US/netfx64bit/thread/10ebc62f-e6d7-4072-9fd1-ea3784a0966f/</a> </p>
  
  <ol>
  <li>Is there an easier or correct way to do this?</li>
  <li>I was hoping that running my app on a tablet would automatically launch the on-screen keyboard when the user selects a textbox, but no luck. Is this normal or am I missing something? I've found that the keyboard is not automatically launched in Windows 8 when in Desktop mode (which my app is): <a href="http://www.bleepingcomputer.com/forums/t/480250/keyboard-does-not-pop-up-automatically/" rel="nofollow noreferrer">http://www.bleepingcomputer.com/forums/t/480250/keyboard-does-not-pop-up-automatically/</a> Apparently it works on Windows 7 tablets, but I can't test because I only have Windows 8 tablets here.</li>
  </ol>