谁能帮我分析一下这段代码,我在创建桌面过程中,为何任务栏消失? 如何避免?

mazheng621 2004-01-30 04:08:56
/*
3@!!
*/
char* MeDsktp = "MyDeskTop";
SECURITY_DESCRIPTOR sd;
SECURITY_ATTRIBUTES sa;
LPSECURITY_ATTRIBUTES lpsa = NULL;
OSVERSIONINFO osv;

osv.dwOSVersionInfoSize = sizeof(osv);
GetVersionEx(&osv);

if(osv.dwPlatformId == VER_PLATFORM_WIN32_NT) //NT系统的话,需要指定lpsa参数
{
InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(&sd, true, NULL, false);
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = true;
sa.lpSecurityDescriptor = &sd;
lpsa = &sa;
}

STARTUPINFO si;
memset(&si, 0, sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESHOWWINDOW |STARTF_USESTDHANDLES;
si.wShowWindow = SW_SHOW;
si.lpDesktop = MeDsktp;
PROCESS_INFORMATION pi; //尝试打开特定的桌面

HDESK DsktpHandle = OpenDesktop( MeDsktp,
DF_ALLOWOTHERACCOUNTHOOK,
true,
DESKTOP_CREATEMENU | DESKTOP_CREATEWINDOW |
DESKTOP_ENUMERATE | DESKTOP_HOOKCONTROL |
DESKTOP_JOURNALPLAYBACK | DESKTOP_JOURNALRECORD |
DESKTOP_READOBJECTS | DESKTOP_SWITCHDESKTOP |
DESKTOP_WRITEOBJECTS);
if(!DsktpHandle) //打开失败则创建该桌面
{
DsktpHandle = CreateDesktop(MeDsktp,
NULL,
NULL,
DF_ALLOWOTHERACCOUNTHOOK,
DESKTOP_CREATEMENU | DESKTOP_CREATEWINDOW |
DESKTOP_ENUMERATE | DESKTOP_HOOKCONTROL |
DESKTOP_JOURNALPLAYBACK | DESKTOP_JOURNALRECORD |
DESKTOP_READOBJECTS | DESKTOP_SWITCHDESKTOP |
DESKTOP_WRITEOBJECTS,
lpsa);
if(!DsktpHandle)
{
ShowMessage("Des");
}
}
if(DsktpHandle)
{
SwitchDesktop(DsktpHandle);//切换到特定的桌面,否则新的程序进程将看不到
}
...全文
48 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
无我无人 2004-02-02
  • 打赏
  • 举报
回复
可能在新桌面上运行explorer.exe就可以吧,不确定。
mazheng621 2004-01-30
  • 打赏
  • 举报
回复
那如何建立任务栏呢??
无我无人 2004-01-30
  • 打赏
  • 举报
回复
任务栏是从在原有桌面上建立的,是“后天”的。新建的桌面,当然没有任务栏。桌面是个概念,不是shell.
vccsdn 2004-01-30
  • 打赏
  • 举报
回复
帮你顶一下

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧