Start OSK with CreateProcess an Windows 10 64 Bit fails

  • Thread starter Thread starter SchLois
  • Start date Start date
S

SchLois

Guest
Hello,

I'm porting my Windows 7 Win32 C-programmed application to Windows 10. When user inputs are needed, the on screen keyboard osk has to be started by my application. This worked without problem on Windows 7.

This is done with CreateProcess(NULL, szOnScreenKeyboardExe, NULL, NULL, FALSE, 0, NULL, NULL, &sa, &procInfo);.

I'm not sure if the problem is caused by Windows 10 or by the 64 bit version of the OS. I've only W7-32 and W10-64 available here for testing.

With Explorer I can navigate to

  • C:\Windows\System32 and start osk successfully
  • C:\Windows\SysWOW64 and can NOT start osk (Message Box "... cannot be started ...")

With Explorer I can navigate to the 64 and 32 bit system folders mentioned above and can start 64 and 32 Bit applications like calc and cmd.

  • System32\cmd can start System32\OSK, but not SysWOW64\osk
  • SysWOW64\cmd can't start osk neither in System32 nor SysWOW64
    (Now I know that system file system redirection redirects a 32 bit process accessing system32 to SysWOW64)

So I used Wow64DisableWow64FsRedirection in my application to be able to start programs in the System32 folder, as the 32 bit version of osk seemed to be not working.

The Result is: I can start 32 and 64 bit versions of calc, notepad, cmd, but NOT osk.

Very strange: The 64 bit cmd, which is started by my application, can also not start osk, whereas the 64 bit cmd started by explorer can start osk.

To clarify the situation: CreateProcess for osk succeeds, but the osk just shows a message box "... cannot be started ...." and/or crashes.

An now the question: How to call CreateProcess to start the osk? Explorer can do it, a cmd started by explorer can do it, my application can't do it.


Thank you for any hint.

Continue reading...
 
Back
Top