1、根据程序名称找到进程
#include "stdafx.h"
#include<iostream>
#include<Windows.h>
#include<TlHelp32.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
TCHAR c[]={L"cmd.exe"};
HANDLE handle;
HANDLE handle1;
handle=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32 *info;
info=new PROCESSENTRY32;
info->dwSize=sizeof(PROCESSENTRY32);
Process32First(handle,info);
while(Process32Next(handle,info)!=FALSE)
{
info->szExeFile;
if( wcscmp(c,info->szExeFile) == 0 )
{
handle1=OpenProcess(PROCESS_TERMINATE,FALSE,info->th32ProcessID);
TerminateProcess(handle1,0);
}
}
CloseHandle(handle);
CloseHandle(handle1);
return 0;
}
2、根据进程ID找到窗口句柄并操作窗口
struct ProcessWindow
{
DWORD dwProcessId;
HWND hwndWindow;
};
BOOL CALLBACK EnumWindowCallBack(HWND hWnd, LPARAM lParam)
{
ProcessWindow *pProcessWindow = (ProcessWindow *)lParam;
DWORD dwProcessId;
GetWindowThreadProcessId(hWnd, &dwProcessId);
if (pProcessWindow->dwProcessId == dwProcessId && IsWindowVisible(hWnd) && GetParent(hWnd) == NULL)
{
pProcessWindow->hwndWindow = hWnd;
return FALSE;
}
return TRUE;
}
ProcessWindow procwin;
procwin.dwProcessId = info->th32ProcessID;
procwin.hwndWindow = NULL;
EnumWindows(EnumWindowCallBack, (LPARAM)&procwin);
ShowWindow(procwin.hwndWindow,SW_SHOWNORMAL);
SetForegroundWindow(procwin.hwndWindow);