2013-03-22 357 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

相關問題