可以的,给你个提示,可以打开这个进程来得到这个进程的ID1,然后在枚举一下所有的窗口,然后在根据窗口得到进程ID2, 最后进行比对进程ID1和进程ID2就可以调出窗口了
这是我以前写过的代码,大概是这么个意思,有点不一样的是我创建了个进程快照,来得到进程ID1,其他的跟刚才说的差不多
DWORD GetProId(CString ProctName)
{
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if (hSnapshot == INVALID_HANDLE_VALUE)
return NULL;
PROCESSENTRY32 ProcessInfo;
ProcessInfo.dwSize = sizeof(PROCESSENTRY32);
Process32First(hSnapshot,&ProcessInfo);
while (Process32Next(hSnapshot,&ProcessInfo) != FALSE){
if(ProctName == ProcessInfo.szExeFile)
return ProcessInfo.th32ProcessID;
}
return -1;
}
HWND hwndidf;
BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam)
{
PIDENTIFICATION pIdf = (PIDENTIFICATION)lParam;
DWORD ProcessId;
GetWindowThreadProcessId(hwnd,&ProcessId);
if(ProcessId == pIdf->ProcessId)
{
HANDLE hHandle = GetProp(hwnd,pIdf->TargetPath);
if(hHandle == pIdf->hHandle)
{
hwndidf = hwnd;
return FALSE;
}
}
return TRUE;
}
BOOL SetHwndIdf(PIDENTIFICATION pIdf)
{
EnumWindows(EnumWindowsProc,(LPARAM)pIdf);
return TRUE;
}