NX二次开发-打开文件夹,并同时选中指定文件

 1 NX9+VS2012
 2 
 3 #include <uf.h>
 4 #include <uf_ui.h>
 5 #include <uf_part.h>
 6 #include <atlstr.h>
 7 #include <iostream>
 8 #include <sstream>
 9 
10 
11 UF_initialize;
12 
13 //获取当前part所在路径
14 char part_fspec[MAX_FSPEC_SIZE+1];
15 UF_PART_ask_part_name(UF_PART_ask_display_part(), part_fspec);
16 
17 //转换
18 char new_fspec[256];
19 sprintf(new_fspec, "/select, %s", part_fspec);
20 
21 //打开并选中状态
22 ShellExecute(NULL,"open","Explorer.exe",new_fspec,NULL,SW_SHOWDEFAULT);
23 
24 UF_terminate();
25 
26 Caesar卢尚宇
27 2019年7月26日

NX二次开发-打开文件夹,并同时选中指定文件

 

以下

转载/原文出处https://blog.csdn.net/leehong2005/article/details/8613120#

如何用程序打开一个文件,并选中这个文件夹中指定的文件呢?其实这个功能用得很多。

1.方法一

1 ShellExecute(
2     NULL,
3     _T("open"),
4     _T("Explorer.exe"),
5     _T("/select, D:\\a.mp3"),
6     NULL,
7     SW_SHOWDEFAULT);

打开D盘,并选中a.mp3这个文件。

2.方法二

用 ShellExecuteEx 函数:

1 HELLEXECUTEINFO shex = { 0 };
2 shex.cbSize = sizeof(SHELLEXECUTEINFO);
3 shex.lpFile = _T("explorer");
4 shex.lpParameters = _T(" /select, D:\\a.mp3");
5 shex.lpVerb = _T("open");
6 shex.nShow = SW_SHOWDEFAULT;
7 shex.lpDirectory = NULL;
8  
9 ShellExecuteEx(&shex);

其实上面最本质的都是用 explorer 命令。
它的命令如下:

 1 Explorer [/e][,/root,<object>][[,/select],<sub object>]
 2 /e
 3    Use Explorer view (scope and results pane view). The default is
 4    Open view (results in pane view only).
 5 /root<object>
 6    Specify the object in the "normal" name space that is
 7    used as the root (top level) of this Explorer/Folder (i.e., local
 8    path or UNC name). The default is the Desktop).
 9 /Select
10    The parent folder opens and the specified object is selected.
11    <sub object>   Specify the folder unless /select is used. The
12    default is the root.

Explorer /select, C:\Windows\Calc.exe
打开C:\Windows目录,并选中Calc.exe这个文件。
注意 /select后面有一个逗号,这个不要忘记了。

你可以在cmd下面,输出如下命令:
explorer /select, D:\a.mp3
这句话执行的效果跟上面方式一与方式二的效果相同。

 

上一篇:删除设备和驱动器下图标


下一篇:SVN 的小图标突然消失了~