背景: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
如果想要在程序中调用资源管理器打开某个目录,我们通常可以这样写:(以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应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/7661/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
评论列表