代码如下
//获取所有同名窗体
unsigned char get_all(HWND WindowList[4])
{
int i;
HWND hWnd;
for(i=0;i<4;i++)
{
if(i == 0)
hWnd = FindWindow(NULL,"abc");
else
hWnd = GetNextWindow(hWnd,GW_HWNDNEXT);
if(hWnd!=NULL)
WindowList[i] = hWnd;
else
break;
}
if(i !=4 )return 0;
else return 1;
}
int main(int argc, char* argv[])
{
unsigned char i = 0;
unsigned int j = 0;
int starta=0x0;
unsigned int read_l = 0x00;
DWORD temp;
HWND window_list[4];
DWORD porcess_list[4];
HANDLE porcess_handle_list[4];
if(!get_all(window_list))
{
printf("Can not found");
system("PAUSE");
return 1;
}
printf("hwnd:");
for(i=0;i<4;i++)
printf("%x ",window_list[i]);
printf("\r\nPID:");
for(i=0;i<4;i++)
{
GetWindowThreadProcessId(window_list[i],porcess_list+i);
printf("%u ",porcess_list[i]);
}
}
返回值如下:后三个的进程ID每次都返回一样的,请问是哪里不对呢
找到问题了,搜索到的窗口并不是我想要的,改变搜索办法后解决了
用spy++看下,是不是后三个窗口属于同一个进程?