通过文件名得到程序的进程
DWORD GetThreadIDFromName(char* name)
{HANDLE snapshot;
PROCESSENTRY32 processinfo;
THREADENTRY32 threadinfo;
DWORD dwProcessID, dwThreadID;
processinfo.dwSize = sizeof(PROCESSENTRY32);
threadinfo.dwSize = sizeof(THREADENTRY32);
snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
if (!snapshot)
return FALSE;
BOOL status = Process32First(snapshot, &processinfo);
//char* nnn = processinfo.szExeFile;
while (status)
{
if (!_stricmp(name, processinfo.szExeFile))
//if (!_stricmp(name, nnn))
{
dwProcessID = processinfo.th32ProcessID;
break;
}
status = Process32Next(snapshot, &processinfo);
}
//return dwProcessID;
status = Thread32First(snapshot, &threadinfo);
while (status)
{
if (threadinfo.th32OwnerProcessID == dwProcessID)
{
dwThreadID = threadinfo.th32ThreadID;
break;
}
status = Thread32Next(snapshot, &threadinfo);
}
CloseHandle(snapshot);
return dwThreadID;
}
调用
void CMy555555Dlg::OnBnClickedButton3()
{
char* name = "es.exe";
DWORD tID = GetThreadIDFromName(name);
//PostThreadMessage(tID, WM_QUIT, VK_F9, 0);
PostThreadMessage(tID, WM_KEYDOWN, VK_F9, 0);
}
对于没有窗口的适用。有窗口的适合用keybd_event。
www.yijiku.com 绣花网的绣花改软件,全世界独有专门侧重后处理功能的软件,特别适合跟威尔克姆一起用。本人通过10几年的历程开发的软件,欢迎指教 。