2013-03-22 359 views
2

例如,我想要打开“字体设置”页面。 (它的“字体”下的控制面板。)打开Windows资源管理器到组合GUID文件夹

我得到了它的GUID如下:

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

我使用NavigateComplete2事件的InternetExplorer接口的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}"); 

但没有任何工程。

+0

你试过使用[整个字符串](http://stackoverflow.com/questions/1073999/how-do-i-open -the-my-documents-and-my-computer-folders-from-c)作为第一个参数? – Caramiriel 2013-03-22 09:38:51

+0

尝试在第一个组合中用“explorer.exe”更改第一个参数“explorer”。 – 2013-03-22 10:09:31

+0

@ Caramiriel是的。但是,谢谢。 – ispiro 2013-03-22 10:54:04

回答

1

令人痛心的迟到的回答,但你的问题是/是您使用的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 \字体设置”

+0

谢谢。任何想法这里的一般规则是什么? (或者:你是怎么得到这些的? - 你怎么知道删除'Fonts'?) – ispiro 2014-06-18 19:47:57

+0

我很确定一般规则是你指定了一个合法的heieracy并且它可以工作。例如,你可以指定'shell ::: {93412589-74D4-4E4E-AD0E-E0CB621440FD}'没有问题,但是对于那个“文件夹”缺少一个父对象会很奇怪。您可以指定程序和功能为'shell ::: {26EE0668-A00A-44D7-9371-BEB064C98683} \ 8 \ :: {7B81BE6A-CE2B-4676-A29E-EB907A5126C5}',或者只使用最后一个guid。将8更改为6,您将看到“控制面板\时钟,语言和区域\程序和功能”的显示路径!但是Fonts文件夹很奇怪。 – 2014-06-18 22:05:44

0

您需要使用Environment.SpecialFolder Enumeration

System.Diagnostics.Process.Start(
    Environment.GetFolderPath(Environment.SpecialFolder.Fonts))); 
+0

a)谢谢。但我正在寻找一种通用的方式来使用GUID。 b)它不打开字体**设置**页面(点击“字体”页面上的'字体设置'左边的字体可以进入该页面)。 – ispiro 2013-03-22 09:22:48

0

你有没有尝试指定壳牌属性

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

Source

+0

用我提供的GUID尝试你的代码并看看。但是,谢谢。 – ispiro 2013-03-22 13:10:07

相关问题