15,978
社区成员
发帖
与我相关
我的任务
分享
void CInvokeOSKDlg::OnSetFocus()
{
PVOID oldValue = NULL;
f_Wow64DisableWow64FsRedirection(&oldValue);
ShellExecute(NULL, "open", "osk.exe", NULL, NULL, SW_SHOW);
f_Wow64RevertWow64FsRedirection(oldValue);
}
void CInvokeOSKDlg::OnKillFocus()
{
DWORD dwId = 0;
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32 pe;
Process32First(hSnapshot,&pe);
do
{
if(!_tcscmp(pe.szExeFile, _T("osk.exe")))
{
dwId = pe.th32ProcessID;
break;
}
}
while(Process32Next(hSnapshot,&pe));
CloseHandle(hSnapshot);
if(dwId)
{
HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, NULL, dwId);
if(hProcess)
TerminateProcess(hProcess, 0);
}
}
#include <Tlhelp32.h>
DWORD dwId = 0;
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32 pe;
Process32First(hSnapshot,&pe);
do
{
if(!_tcscmp(pe.szExeFile, _T("osk.exe")))
{
dwId = pe.th32ProcessID;
break;
}
}
while(Process32Next(hSnapshot,&pe));
CloseHandle(hSnapshot);
if(dwId)
{
HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, NULL, dwId);
if(hProcess)
TerminateProcess(hProcess, 0);
}
WinExec("osk.exe",SW_SHOW);
WinExec("cmd.exe /c taskkill /IM osk.exe",SW_HIDE);