简体   繁体   中英

Open Windows Explorer to a Combined-GUID folder

I want, for example, to open the "Font Settings" page. (It's under "Fonts" in the control panel.)

I got its GUID as follows:

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

I got it using the URL of the NavigateComplete2 event of an InternetExplorer interface.

I tried many different combinations such as:

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

And:

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

But nothing works.

Painfully late answer, but your problem is/was that the url you were using is for some reason not accepted by the shell url handler.

To start that folder you want you can use: shell:::{26EE0668-A00A-44D7-9371-BEB064C98683}\\1\\::{93412589-74D4-4E4E-AD0E-E0CB621440FD} . If you really want the font folder to be the parent, try shell:Fonts\\::{93412589-74D4-4E4E-AD0E-E0CB621440FD} . It gives you the absurd looking path "C:\\Windows\\Fonts\\Font settings"

You need to use the Environment.SpecialFolder Enumeration :

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

Did you try to specify Shell attribute

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

Source

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM