用资源管理器打开一个目录并自动选定某个文件

jackxiang 2014-12-1 19:54 | |
背景:Chrome或Firefox下文件后,在文件夹中显示时,会默认选中这个文件,这个功能是怎么实现的呢?

如果想要在程序中调用资源管理器打开某个目录,我们通常可以这样写:(以windows目录为例)



const char * spath = "C://windows//";
::ShellExecute(0,"open",spath,NULL,NULL,SW_SHOWNORMAL);



但有的时候,为了使程序更加人性化一些,我们想打开某个目录,并且自动的选中某个文件,那么也是可以实现的,实现方法就是通过 /select 参数调用explorer.exe。



代码如下:

const char * spath = "C://windows//NOTEPAD.EXE";
char sparam[MAX_PATH*2+10];
sprintf(sparam,"/select,%s",spath);
::ShellExecute(0,"open","explorer.exe",sparam ,NULL,SW_SHOWNORMAL);



附:explorer.exe参数参考

参数    结果
/n    为默认选择内容打开一个新的单窗格窗口。
        默认选择内容通常是安装 Windows 的驱动器的根目录。
/e    使用默认视图启动 Windows 资源管理器。
/e, <object>    使用默认视图启动 Windows 资源管理器并把焦点定位在指定文件夹上。
/root, <object>    打开指定对象的一个窗口视图。
/select, <object>    打开一个窗口视图,指定的文件夹、文件或
                            程序被选中。
来自:http://blog.csdn.net/qiqi5521/article/details/2760419

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/7661/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]