Qt5.9.0中打开与关闭系统软键盘

来源:互联网 发布:韩顺平mysql基础视频 编辑:程序博客网 时间:2024/05/29 23:46

1、cmd命令打开与关闭系统软键盘

运行(Ctrl+R)->cmd打开:osk关闭:taskkill /IM osk.exe

2、通过程序打开系统软键盘

头文件中需要加入如下代码:

#include <Windows.h>#pragma comment(lib, "user32.lib")

打开软键盘具体实现:

PVOID OldValue;BOOL bRet = Wow64DisableWow64FsRedirection (&OldValue);QString csProcess="C:\\Windows\\System32\\osk.exe";QString params="";ShellExecute(NULL, L"open", (LPCWSTR)csProcess.utf16(), (LPCWSTR)params.utf16(), NULL, SW_SHOWNORMAL);if ( bRet ){    Wow64RevertWow64FsRedirection(OldValue);}

3、通过程序关闭系统软键盘

首先获取软键盘的句柄,然后发送WM_CLOSE消息。

HWND appWnd;appWnd = ::FindWindow(L"OSKMainClass", NULL);if ( appWnd ){    ::SendMessage(appWnd, WM_CLOSE,0, 0);       qDebug() << "closeKeyboard succeed";}else{    qDebug() << "closeKeyboard failed";}