char tdata[80];
int titlelen=i=0;
keybd_event(VK_MENU,0,0,0); 
keybd_event(VK_TAB,0,0,0);
keybd_event(VK_TAB,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0);//切换一次窗口,给定选中的活动窗口HWND hWnd =::GetActiveWindow();
titlelen=::GetWindowTextLengthA(hWnd);
i=::GetWindowTextA(hWnd,tdata,titlelen+1);
TRACE("当前窗口标题长度为:%d,%d,%d\n",titlelen,i,hWnd);
TRACE("当前窗口标题为:%s\n",tdata);while((strcmp(tdata,"我的电脑")))//不是我要的“我的电脑”窗口
{
selnum++;//tab键按下的计数值
tmp=selnum;//作为中间变量保存下
keybd_event(VK_MENU,0,0,0);//按下alt键,准备再次切换窗口
for(;tmp>0;tmp--)//按指定的selnum计数值按下tab键

keybd_event(VK_TAB,0,0,0);
keybd_event(VK_TAB,0,KEYEVENTF_KEYUP,0);
Sleep(50);
}
keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0);////切换一次窗口,给定选中的活动窗口//HWND hWnd = ::GetForegroundWindow();
HWND hWnd =::GetActiveWindow();
titlelen=::GetWindowTextLengthA(hWnd);
i=::GetWindowTextA(hWnd,tdata,titlelen+1);
TRACE("当前窗口标题长度为:%d,%d,%d\n",titlelen,i,hWnd);
TRACE("当前窗口标题为:%s\n",tdata);
}TRACE("当前窗口标题长度为:%d,%d,%d\n",titlelen,i,hWnd);
TRACE("当前窗口标题为:%s\n",tdata );上面这段代码是我一个普通的消息响应函数中的代码段,我的思路是切换窗口,以获得活动窗口的标题,与“我的电脑”相比较。如果不是,则切换2次;不同就切换3次;不同就切换4次......以此类推。
我的运行结果,怎么活动窗口居然是同一个呢!我很困惑!盼高人指点!