gpt4 book ai didi

c++ - 如何用C++控制TabTip键盘的显示和关闭

转载 作者:可可西里 更新时间:2023-11-01 10:31:23 30 4
gpt4 key购买 nike

1,谁能告诉我tabtip和osk键盘的区别?2、我想知道如何用C++控制TabTip键盘的显示和关闭?

我试图通过关闭 osk 系统键盘来关闭 tabtip.exe,但它不起作用。

首先,我尝试过使用FindWindow函数返回一个有效的窗口句柄来找到需要关闭/最小化的窗口。然后通过调用 SendMessage 显示 TabTip 窗口。

if (HWND hwnd = FindWindow(L"IPTip_Main_Window", 0))
{
SendMessage(hwnd, WM_SYSCOMMAND, SW_SHOW, 0);
}

最佳答案

试试下面的代码,可以杀掉TabTip的进程,然后再打开,也能满足你的需求。

#include "pch.h"
#include <iostream>
#include <windows.h>
#include <TlHelp32.h>
#include <tchar.h>
BOOL GetPidByProcessName(TCHAR *pProcess, DWORD *dwPid)
{
HANDLE hSnapshot;
PROCESSENTRY32 lppe;
hSnapshot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);

if (hSnapshot == NULL)
return FALSE;
lppe.dwSize = sizeof(lppe);
if (!::Process32First(hSnapshot, &lppe))
return FALSE;
do
{
if (_tcscmp(lppe.szExeFile, pProcess) == 0)
{
*dwPid = lppe.th32ProcessID;
}
} while (::Process32Next(hSnapshot, &lppe));

return TRUE;
}
BOOL KillProcess(DWORD ProcessId)
{
HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId);
if (hProcess == NULL)
return FALSE;
if (!TerminateProcess(hProcess, 0))
return FALSE;
return TRUE;
}
int main()
{
HWND TabTip = FindWindow(L"IPTip_Main_Window", 0);
if (!TabTip)
{
ShellExecute(NULL, L"open", L"C:\\Program Files\\Common Files\\microsoft shared\\ink\\TabTip.exe", NULL, NULL, SW_SHOW);
}
else
{
TCHAR a[256] = _T("TabTip.exe");
DWORD b = 0;
GetPidByProcessName(a, &b);
KillProcess(b);
ShellExecute(NULL, L"open", L"C:\\Program Files\\Common Files\\microsoft shared\\ink\\TabTip.exe", NULL, NULL, SW_SHOW);
}


}

最好的问候,

苏亚雷斯周

关于c++ - 如何用C++控制TabTip键盘的显示和关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57425730/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com