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}");
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.