1. 程式人生 > 實用技巧 >MFC VC++ 開啟系統軟鍵盤

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

這個解決辦法應該是查詢程序,關閉程序,再啟動程序