- win10触摸键盘通过::SendMessage隐藏方式没有效果
HWND hWnd = ::FindWindow(L"OSKMainClass", NULL);
if ( hWnd )
{
::SendMessage(hWnd, WM_SYSCOMMAND, SC_MINIMIZE, 0);
}
-
win10触摸键盘无法找到状态窗口状态,isWidowsVisible,GetWindowPlacement,GetWindowLong,状态没有变化
// IsWindowVisible不管是显示还是隐藏返回值一直是false
HWND hWnd = ::FindWindow(L"IPTip_Main_Window", NULL);
bool visible= ::IsWindowVisible(hWnd);
// GetWindowPlacement,不管是显示还是隐藏showCmd状态一直true
HWND hWnd = ::FindWindow(L"IPTip_Main_Window", NULL);
WINDOWPLACEMENT wp = {};
wp.length = sizeof(WINDOWPLACEMENT);
bool placement = ::GetWindowPlacement(hWnd , &wp);
bool visible = wp.showCmd;
// GetWindowLong不管是显示还是隐藏返回值是0x84000000,WS_POPUP&WS_CLIPSIBLINGS,visible一直是false
HWND hWnd = ::FindWindow(L"IPTip_Main_Window", NULL);
unsigned int style = ::GetWindowLong(hWnd, GWL_STYLE);
bool visible = (style & WS_VISIBLE);
-
win10触摸键盘无法后台运行进程界面不显示,shellExecute,QProcess,CreateProcess方式
// 无法后台运行隐藏隐藏界面
ShellExecute(NULL, L"open", L"C:\\Program Files\\Common Files\\microsoft shared\\ink\\TabTip.exe", NULL, NULL, SW_HIDE);
-
win10触摸键盘不弹出,登录窗口用禁用输入法,代码如下,但是如果有继承关系的父控件无法获取鼠标相关事件;
// 屏蔽系统键盘
HWND hWnd = (HWND)this->winId();
HIMC _IMC = ImmGetContext(hWnd);
if (hWnd && IsWindow(hWnd))
{
ImmAssociateContext(hWnd, NULL);
ImmSetOpenStatus(_IMC, FALSE);
if (!ImmReleaseContext(hWnd, _IMC))
{
// 禁用失败
}
}
// 启用
// ImmAssociateContext(hWnd, _IMC );
- win10触摸键盘自动唤醒设置关闭后,win10触摸键盘不回唤起,利用注册表设置win10触摸键盘自动唤醒设置,但是需要重启系统才能生效,修改注册表无法实时生效;
QSettings reg("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\TabletTip\\1.7",
QSettings::NativeFormat);
if(reg.contains("EnableDesktopModeAutoInvoke"))
{
// 关闭系统键盘自动唤醒
QVariant value = reg.value("EnableDesktopModeAutoInvoke");//写注册表
if(value.toInt() == 1)
{
// 当前唤醒系统键盘设置为1
return true;
}
else
{
// 当前唤醒系统键盘设置为0
return false;
}
}
else
{
// 没有自动唤醒系统键盘注册表设置
return false;
}