1、下面程序是查找正在运行的软键盘,找到并关闭
//中止正在运行的某个进程
HANDLE Snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32 processListStr;
processListStr.dwSize = sizeof(PROCESSENTRY32);
BOOL return_value = Process32First(Snapshot,&processListStr);
while(return_value)
{
CString strExeName = processListStr.szExeFile;
strExeName.MakeUpper();
if(strExeName == _T("TABTIP.EXE"))
{
HANDLE ProcessHandle = OpenProcess(PROCESS_ALL_ACCESS,FALSE,processListStr.th32ProcessID);
// int iOpenProcess = GetLastError();///
if(ProcessHandle)
TerminateProcess(ProcessHandle,0);
/* int iTerminateProcess = GetLastError();
CString strError;
strError.Format(_T("OpenProcess %d TerminateProcess %d"),iOpenProcess,iTerminateProcess);
AfxMessageBox(strError);*/
break;
}
return_value = Process32Next(Snapshot,&processListStr);
}
2、第二种方法是通过VS 的 spy++(可以搜索此工具的使用方法)找到taptip.exe打开是对应的类名和窗口名称
HWND tphWnd = ::FindWindow(_T("IPTip_Main_Window"),NULL);
if(tphWnd)//找到
{
}
else//没有找到
{
ShellExecute(hWnd, NULL, _T("taptip.exe"), NULL, NULL, SW_NORMAL);
//ShellExecute(GetSafeHwnd(), NULL, _T("osk.exe"), NULL, NULL, SW_NORMAL);
//ShellExecute(hWnd, NULL, _T("osk.exe"), NULL, NULL, SW_NORMAL);
}