title: Detect if on-screen keyboard is open (TabTip.exe)
body: <p>I am working on a WPF/C# application for completing forms. I am trying to find a way to determine if the TapTip keyboard (TabTip.exe / metro-like keyboard for windows 8 desktop) is minimized / not visible in windows 8.</p>
  
  <p>I have been able to detect if the osk keyboard (osk.exe / windows accessibility on-screen keyboard) is minimized, but the same process does not seem to work with the TabTip keyboard. </p>
  
  <p>To detect if the keyboard is minimized I: <br>
  1. Find the keyboard's process <br>
  2. Get the MainWindowHandle <br>
  3. Use the showCmd property of the WINDOWPLACEMENT (found using MainWindowHandle) <br>
  4. Use showCmd value to determine if window is minimized <br></p>
  
  <p>The problems I have run into are: <br>
   - the TabTip process has a MainWindowHandle of 0 (so I can't use it to find the WINDOWPLACEMENT information) <br>
   - the values for WINDOWPLACEMENT.showCmd are the same when TabTip is open and minimized</p>
  
  <p>In order to find the handle of the TabTip window I used ENUMWINDOWS to get all the window handles, GETWINDOWTHREADPROCESSID to get the process ids, then compared the ids to the TabTip process id.</p>
  
  <p>Any help with this would be appreciated. Also this is my first post. I think I did this right, but if not please let me know how to fix it.</p>