我在一个函数中循环调用如下(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总是有效,为什么???
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总是有效,为什么???
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货