打开Windows资源管理器到一个合并GUID的文件夹

4

例如,我想打开“字体设置”页面。(在控制面板中的“字体”下)

我获取了它的GUID如下:

::{26EE0668-A00A-44D7-9371-BEB064C98683}\1\Fonts\::{93412589-74D4-4E4E-AD0E-E0CB621440FD}

我使用InternetExplorer接口的NavigateComplete2事件的URL来获取它。

我尝试了很多不同的组合,比如:

Process.Start("explorer", @"::{26EE0668-A00A-44D7-9371-BEB064C98683}\1\Fonts\::{93412589-74D4-4E4E-AD0E-E0CB621440FD}");

并且:

Process.Start("::{26EE0668-A00A-44D7-9371-BEB064C98683}", @"\1\Fonts\::{93412589-74D4-4E4E-AD0E-E0CB621440FD}");

但是什么都不起作用。

你尝试过将整个字符串作为第一个参数使用吗? - Caramiriel
尝试在您的第一个组合中将第一个参数“explorer”更改为“explorer.exe”。 - Zain Ali
@ZainAli 这并不是必要的 - explorer 确实会启动Windows资源管理器,只是它没有打开所需的文件夹。但还是谢谢。 - ispiro
你使用的是哪个版本的Windows? - Polyfun
3个回答

6
很晚才回复,但您的问题是/曾经是,您正在使用的url由于某种原因未被shell url处理程序接受。
要启动您想要的文件夹,可以使用: shell:::{26EE0668-A00A-44D7-9371-BEB064C98683}\1\::{93412589-74D4-4E4E-AD0E-E0CB621440FD}。如果您真的希望字体文件夹成为父文件夹,请尝试 shell:Fonts\::{93412589-74D4-4E4E-AD0E-E0CB621440FD}。它会给您提供绝对看起来荒谬的路径"C:\Windows\Fonts\Font settings"。

谢谢。这里有什么一般规则吗?(或者说:你是怎么知道要删除“Fonts”的?) - ispiro
我相信通常的规则是您指定一个合法的层次结构,然后它就能工作。例如,您可以只指定 shell:::{93412589-74D4-4E4E-AD0E-E0CB621440FD} 就没有问题,尽管这个“文件夹”缺少父级可能有点奇怪。您可以将程序和功能指定为 shell:::{26EE0668-A00A-44D7-9371-BEB064C98683}\8\::{7B81BE6A-CE2B-4676-A29E-EB907A5126C5},或者仅使用最后一个 GUID。将 8 更改为 6,您就会得到一个显示路径 控制面板\时钟、语言和区域\程序和功能!但字体文件夹就很奇怪了。 - Kevin Cathcart

0

a) 谢谢。但我正在寻找一种通用的使用GUID的方法。 b) 它无法打开字体“设置”页面(您可以通过在“字体”页面上单击左侧的“字体设置”来访问该页面)。 - ispiro

0

你尝试过指定 Shell 属性吗?

System.Diagnostics.Process.Start("explorer", @"shell:::{93412589-74D4-4E4E-AD0E-E0CB621440FD}");

源代码


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接