Windows 是否有“确定”菜单按钮的热键?

Windows 是否有“确定”菜单按钮的热键?

在菜单中按 Esc 键通常会关闭菜单窗口。是否有类似的热键可以关闭菜单,就像我单击“确定”一样?

我制作了一个宏来快速打开或关闭程序中的元素,这需要切换菜单选项卡中的径向按钮,然后单击“确定”。这可以正常工作,但宏必须按几次 Tab 才能到达“确定”按钮。

答案1

这只是对 David Postill 的评论的解释,简洁而正确。

标准 Windows 对话框,由不同的应用程序使用,允许热键和一个默认键分配给每个按钮(以及对话框的其他区域),但这取决于开发者每个应用程序决定如何分配热键,或者是否使其成为默认键,即Enter

例如,在下面的应用程序中字体查看确定,默认按钮是好的,因此按下Enter选择好的

FontViewOK 对话框

在下面的 Windows UAC 对话框中,默认按钮是. 还请注意带有下划线,表示按下AltN是快捷方式。

Windows UAC 对话框

显然,如果某个操作可能会产生负面影响,开发人员应该避免将该按键设为默认按键,或可能被反射按下的按键。

答案2

您可以使用免费AutoHotkey V1

F9以下示例脚本将在单击时单击活动窗口或对话框中的“确定”按钮:

F9::
ControlClick, OK, A
Return

安装 AutoHotKey 后,将上述文本放入一个.ahk文件中并双击进行测试。您可以通过右键单击托盘栏中的绿色 H 图标并选择退出来停止脚本。要让它在登录时运行,请将其放在 的启动组中
C:\Users\USER-NAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

有用的 AutoHotkey 文档:

答案3

不。有些框只是硬编码为不使用加速键,因此 tab 是你唯一的选择(不使用第三方)。

例如,使用运行框进行操作,可以用它做任何事情,但不能强调“确定”或“取消”;

$cpuUsage = Get-WmiObject Win32_Processor | Select-Object -ExpandProperty LoadPercentage
$memory = Get-WmiObject Win32_OperatingSystem
$totalMemory = [math]::Round($memory.TotalVisibleMemorySize / 1MB, 2)
$freeMemory = [math]::Round($memory.FreePhysicalMemory / 1MB, 2)
$usedMemory = $totalMemory - $freeMemory
$systemInfo = "Current CPU Usage: $cpuUsage%`n"
$systemInfo += "RAM usage: $usedMemory/$totalMemory MB`n"
$dialogTitle = "Example of Run box on $($env:COMPUTERNAME)."

Add-Type @"
    using System;
    using System.Runtime.InteropServices;

    public class Win32 {
        [DllImport("shell32.dll", EntryPoint = "#61", CharSet = CharSet.Unicode)]
        public static extern int RunFileDlg(
            IntPtr hWnd,
            IntPtr icon,
            string path,
            string title,
            string prompt,
            uint flags);
    }
"@

$RFF_NOBROWSE = 1
$RFF_NODEFAULT = 2
$RFF_CALCDIRECTORY = 4
$RFF_NOLABEL = 8
$RFF_NOSEPARATEMEM = 14
$RFF_OK = 0x00008000

[Win32]::RunFileDlg([IntPtr]::Zero, [IntPtr]::Zero, $null, $dialogTitle, $systemInfo, $RFF_OK)

另存为 Somename.ps1 并运行。请注意,当按下 Alt 时,它甚至会强调“打开”(即使默认情况下也是如此),但不会执行任何操作。

相关内容