我想实现什么这个帖子,除了我个人愿意使用多个单一输入或击键来实现它。
我知道一些(如果不是全部)系统窗口可以通过直接调用其路径来调用,然后可以将其绑定到快捷方式,甚至直接通过运行(然后,可以通过各种不同的方法直接进行键绑定,例如 .ahk 脚本或外围设备的 OEM 软件)。
一个例子是Devices & Printers
屏幕,由于某种原因,它不再直接在“开始”菜单搜索中填充为条目;因此,我必须查找并为其创建一个快捷方式:
%systemroot%\explorer.exe /e,::{26EE0668-A00A-44D7-9371-BEB064C98683}\0\::{A8A91A66-3A7D-4424-8D24-04E180695C7A}
我想知道的是,如何才能真正确定该路径地址是什么?我可能希望自动访问各种屏幕或功能(目前是Ease of Access Mouse Settings
),目前我只能逐个查找它们,并且假设存在并已在线发布。如果这有任何意义的话,我更愿意自己学习如何捕鱼。
答案1
为了控制面板项目,如果您实际上不需要路径而只是想要一条快捷方式,那么简单的方法是:
点击探索者地址栏并输入(或复制/粘贴):
shell:::{ED7BA470-8E54-465E-825C-99712043E01C}
打开所有任务文件夹,其中列出了所有可用的操作:
右键单击任何项目并选择Create Shortcut
在您的桌面。
这电源外壳列出可与协议一起使用的系统文件夹名称的方法Shell:
是:
(gp (gci HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions).PSPath).Name
以下是一个递归的控制面板命名空间:
$Shell = New-Object -ComObject shell.application
$DT = $Shell.Namespace(0)
Function Unfold ($oFolder) {
$oFolder.Items() | ?{ ($_.IsFolder -eq $True) -and ($_.Name -notLike 'Fonts') } | ForEach{
UnFold $_.GetFolder
}
$_.GetFolder.Items() | select Name, Path
}
$DT.Items() | ?{($_.IsFolder -eq $True) -and
($_.Name -match 'Control Panel')} | % {
Unfold $_.GetFolder
} | Out-Gridview
由于某种原因,路径似乎无法与Shell:
协议配合使用。需要进一步调查。