windows下调用ShellExecute CreateProcess 界面不显示

细粉条 2014-09-15 07:23:49
winlogon notification package 的 Eventstartup 函数中用 ShellExecute或者CreateProcess 调用一个exe, 这个exe是弹出一个窗口,但是显示不出来,系统logon后通过任务管理器能看到调用的exe的进程,但是为什么界面显示不出来呢?
而用createwindow是可以显示窗口的,而且此窗口显示在系统 欢迎界面 之上。

winlogon notification package 的 Eventstartup 函数如下:
VOID WLEventStartUp(PWLX_NOTIFICATION_INFO pInfo)
{
wchar_t lszCurrentDektopName[MAX_PATH] = {0};
DWORD ldwNameLen = MAX_PATH,ldwLengthNeeded = 0;
GetUserObjectInformation(OpenInputDesktop(DF_ALLOWOTHERACCOUNTHOOK,FALSE,MAXIMUM_ALLOWED),UOI_NAME,lszCurrentDektopName,ldwNameLen,&ldwLengthNeeded);//得到的,lszCurrentDektopName为winlogon。
//不能显示窗口
ShellExecute(NULL, L"open", L"C:\\test.exe",L"C:\\",NULL, SW_SHOW);
// 创建进程,不能显示窗口
STARTUPINFO sInfo;
PROCESS_INFORMATION lpInfo;
ZeroMemory(&sInfo,sizeof(sInfo));
sInfo.cb=sizeof(sInfo);
sInfo.dwFlags=STARTF_USESHOWWINDOW;
sInfo.wShowWindow=SW_SHOWNORMAL;
ZeroMemory(&lpInfo,sizeof(lpInfo));
//创建一个进程
wchar_t wsModulePathName[MAX_PATH] = L"";
wcscpy_s(wsModulePathName,MAX_PATH,L"c:\\Test.exe");

if(::CreateProcess(wsModulePathName, NULL,
NULL,
NULL,
FALSE,
0,
NULL,
L"C:\\",
&sInfo,
&lpInfo))
{;
}
//可以弹出窗口
CreateWindowEx(WS_EX_TOPMOST|WS_EX_TOOLWINDOW,TEXT("Edit"),L"test",WS_VISIBLE | WS_POPUP ,0,0,
200,200,NULL,NULL,gHinstance,NULL);
}
createwindow和调用ShellExecute CreateProcess 调用exe 显示窗口有什么不同?
为什么createwindow直接创建可以成功,而其他方法不可以?
...全文
519 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lydiadly 2014-09-24
  • 打赏
  • 举报
回复
ShellExecute不可以的原因同意上面说的,可能是SHELL没有加载好,别的就不知道了
细粉条 2014-09-16
  • 打赏
  • 举报
回复
引用 1 楼 Idle_ 的回复:
Winlogon Notification Packages Removed: Impact on Windows Vista Planning and Deployment
恩vista开始没有winlogon notification packages 了,可我用的系统是xp
细粉条 2014-09-16
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
搜“Native Application 开发详解”
http://bbs.csdn.net/topics/390882547 看这个帖子 Native Application 比winlogon notification 运行的早,不适合我的要求,这个帖子你还能给点什么建议? 请问本帖中我出现上面问题的可能原因是什么?
赵4老师 2014-09-16
  • 打赏
  • 举报
回复
引用 6 楼 liyun123gx 的回复:
[quote=引用 5 楼 zhao4zhong1 的回复:] 搜“Native Application 开发详解”
我看了 Native Application 方面的技术,感觉不适合我的要求[/quote] Native Application的运行环境大体上应该和winlogon notification的运行环境相当,我猜。
细粉条 2014-09-16
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
搜“Native Application 开发详解”
我看了 Native Application 方面的技术,感觉不适合我的要求
赵4老师 2014-09-16
  • 打赏
  • 举报
回复
搜“Native Application 开发详解”
细粉条 2014-09-16
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
此时ShellExecute的先决条件还没建立好,我猜。
那为什么createprocess也不行?
赵4老师 2014-09-16
  • 打赏
  • 举报
回复
此时ShellExecute的先决条件还没建立好,我猜。

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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