关于ShellExecute()函数的问题

Gdlian 2013-08-28 07:42:15
我调用ShellExecute()打开explorer,譬如:
ShellExecute(NULL, "open", "explorer.exe", "c:\\windows", NULL, SW_SHOW);

为什么总是在新的explorer.exe进程中打开文件夹呢?
我检查了文件夹选项。其中的“在单独的进程中打开文件夹窗口”是没有勾选的。
但为什么我调用ShellExecute()也好,
WinExec("explorer.exe \"C:\\Windows\"",SW_SHOWNORMAL);也好
总是会创建1个新的explorer.exe进程? 郁闷~

我手动点开文件夹的话,是没有创建新进程的。
郁闷
...全文
106 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwfgdlc 2013-08-28
  • 打赏
  • 举报
回复
我在WIN2008下试下了会多一个进程,XP下不会.
Gdlian 2013-08-28
  • 打赏
  • 举报
回复
回头我对比下注册表看看
Gdlian 2013-08-28
  • 打赏
  • 举报
回复
ShellExecute(NULL, "open", "explorer.exe", "/n,/root,c:\\windows", NULL, SW_SHOW); 还是会有1个单独的explorer.exe进程出来 我怀疑是某些设置的问题。因为有的机器不会这样
Gdlian 2013-08-28
  • 打赏
  • 举报
回复
WIN7下OK,只是XP下会打开文件夹列表
zwfgdlc 2013-08-28
  • 打赏
  • 举报
回复
那就这样

ShellExecute(NULL, "open", "explorer.exe", "/n,/root,c:\\windows", NULL, SW_SHOW);
Gdlian 2013-08-28
  • 打赏
  • 举报
回复

非常感谢,确实没有打开新的进程了

但这好像是把资源浏览器给打开了..左侧的目录栏怎么去掉?
zwfgdlc 2013-08-28
  • 打赏
  • 举报
回复
ShellExecute(NULL, "explore", "c:\\windows", NULL, NULL, SW_SHOW);
是这样,explore多了一个r
Gdlian 2013-08-28
  • 打赏
  • 举报
回复
那样我测试无法打开目录,毫无反映。哥们你是突发奇想?
zwfgdlc 2013-08-28
  • 打赏
  • 举报
回复
试下这样
ShellExecute(NULL, "explorer", "c:\\windows", NULL, NULL, SW_SHOW);

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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