MFC VC++ 打开系统软键盘

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

参考

windows 下c++调用系统键盘及其需要注意的点

这是win10 增加的软键盘,路径是 C:\Program Files\Common Files\microsoft shared\ink\TabTip.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

这个解决办法应该是查找进程,关闭进程,再启动进程

 

posted @ 2020-12-15 20:18  ckrgd  阅读(864)  评论(0编辑  收藏  举报