1.打开系统自带的 osk.exe
参考
32位系统不管win7 win10 直接打开
64位系统不管win7 win10 都要 禁用调用线程的文件系统重定向,默认情况下启用文件系统重定向
//win10 64位测试正常 PVOID OldValue = NULL; BOOL bRet = Wow64DisableWow64FsRedirection(&OldValue);//用回32位文件系统 //ret = WinExec("osk.exe", SW_SHOW); //这个打不开 一直返回0 hNewExe = ShellExecute(NULL, _T("open"), _T("osk.exe"), NULL, NULL, SW_SHOW); if (bRet) { Wow64RevertWow64FsRedirection(OldValue);//用回64位文件系统 }
2.第二种方法是打开TabTip.exe
参考
这是win10 增加的软键盘,路径是 C:Program FilesCommon Filesmicrosoft sharedinkTabTip.exe
1 hNewExe = ShellExecute(NULL, _T("open"), _T("C:\Program Files\Common Files\microsoft shared\ink\TabTip.exe"), NULL, NULL, SW_SHOW);
测试当TabTip.exe进程是关闭状态时,才能正常调用,当这个进程是正在运行状态时,返回值正常,但键盘不能显示出来
这个进程在任务管理器中是 "触摸键盘和手写面板";且是开机启动的进程,服务是 tabletInputService
这个解决办法应该是查找进程,关闭进程,再启动进程