我在一个函数中循环调用如下(xp,系统帐户)
                  HDESK hDesk1 = ::OpenDesktop(_T("Winlogon"), 0, FALSE, MAXIMUM_ALLOWED);
HDESK hDesk2 = ::OpenDesktop(_T("Default"), 0, FALSE, MAXIMUM_ALLOWED); 
HDESK hDesk3 = ::OpenDesktop(_T("Screen-saver"), 0, FALSE, MAXIMUM_ALLOWED);
                  int i = 0; 
         if (hDesk1 == NULL)
{
                       i = 1;
 }
if (hDesk2 == NULL)
{
              i = 2;
}
if (hDesk3 == NULL)
{
                        i = 3;
}
CloseDesktop(hDesk1);
CloseDesktop(hDesk2);
CloseDesktop(hDesk3);
                  为什么无论切换到winlogon窗口还是介于屏保状态时,i 总是2,也就是hDesk2总是有效,为什么???