Ya que no parece existir un atajo integrado con "
ms-settings:", me puse a desarrollar una solución alternativa:
Con la ayuda de herramientas de inspección (o
spy) de ventanas (herramienta utilizada:
Microsoft UI Inspect) averigué el identificador de
automation del botón con texto "
Archivos temporales" (Automation Id: "
SystemSettings_StorageSense_Breakdown_12_Button") en la ventana
UWP de la página del panel de control, y luego tan solo utilicé la infraestructura de
UI Automation para automatizar la invocación del botón.
Dicho procedimiento lo he implementado en el siguiente script de
PowerShell (esto no es algo que se pueda hacer en una herramienta tan limitada como Batch):
Archivos Temporales.ps1using namespace System.Windows.Automation
Add-Type -AssemblyName UIAutomationClient
Start-Process ms-settings:storagesense
$window = $null
while ($window -eq $null) {
Start-Sleep -Milliseconds 500
$window = [AutomationElement]::RootElement.FindFirst([TreeScope]::Children, `
(New-Object PropertyCondition([AutomationElement]::NameProperty, "Configuración")))
}
# En este ejemplo obtengo el botón mediante el texto "Archivos temporales":
$buttonTemporaryFiles = $window.FindFirst([TreeScope]::Descendants, `
(New-Object AndCondition (
(New-Object PropertyCondition([AutomationElement]::ControlTypeProperty, [ControlType]::Button)),
(New-Object PropertyCondition([AutomationElement]::NameProperty, "Archivos temporales"))
)))
<#
# También podría obtener el botón mediante el identificador de automation,
# aunque desconozco si el identificador podría ser distinto dependiendo de
# la cantidad de botones/elementos disponibles, o de otras versiones de Windows:
$buttonTemporaryFiles = $window.FindFirst([TreeScope]::Descendants, `
(New-Object AndCondition (
(New-Object PropertyCondition([AutomationElement]::ControlTypeProperty, [ControlType]::Button)),
(New-Object PropertyCondition([AutomationElement]::AutomationIdProperty, "SystemSettings_StorageSense_Breakdown_12_Button"))
)))
#>
if ($buttonTemporaryFiles -eq $null) {
Write-Error "Can't find ""Archivos temporales"" button."
} else {
$invokePattern = $buttonTemporaryFiles.GetCurrentPattern([InvokePattern]::Pattern)
$invokePattern.Invoke()
}
El resultado:
Nota: El script solo funcionará en un sistema operativo en Español (debido al texto de la ventana y del botón). Probado en Windows 10.
Aténtamente,
Elektro.