C/C++ 呼叫 Windows10的TabTip.exe[中文軟體鍵盤(virtual keyboard/Show touch keyboard)]
C/C++ 呼叫 Windows10的TabTip.exe[中文軟體鍵盤(virtual keyboard/Show touch keyboard)]
資料來源: https://stackoverflow.com/questions/57425730/how-to-use-c-to-control-the-display-and-shutdown-of-the-tabtip-keyboard [how to use C++ to control the display and shutdown of the TabTip keyboard]
GITHUB: https://github.com/jash-git/CPP-call-the-TabTip-of-Windows10
Code
#include <iostream> #include <iostream> #include <windows.h> #include <TlHelp32.h> #include <tchar.h> using namespace std; //https://stackoverflow.com/questions/57425730/how-to-use-c-to-control-the-display-and-shutdown-of-the-tabtip-keyboard 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() { cout << "Hello world!" << endl; HWND TabTip = FindWindow("IPTip_Main_Window", 0); if (!TabTip) { ShellExecute(NULL, "open", "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, "open", "C:\\Program Files\\Common Files\\microsoft shared\\ink\\TabTip.exe", NULL, NULL, SW_SHOW); } return 0; }