如何以编程方式更改“下划线键盘快捷键”控制面板设置?

时间:2009-08-25 12:48:45

标签: vbscript keyboard controlpanel

在“控制面板>轻松访问中心>使键盘更易于使用”是“为键盘快捷键和访问键添加下划线”选项。

有没有办法以编程方式打开和关闭它? 我正在使用Visual Basic脚本,但可以使用.NET。

3 个答案:

答案 0 :(得分:2)

  1. 运行注册表编辑器并转到HKEY_CURRENT_USER \控制面板\辅助功能\键盘首选​​项

  2. 现在创建或修改名为On的字符串值(REG_SZ)并将其值设置为1

  3. 信息来自: http://www.windowsvalley.com/get-underlined-keyboard-shortcuts-and-access-keys-permanently/

答案 1 :(得分:0)

AFAIK,除了自动执行适当的GUI操作(打开控制面板,打开/关闭选项并应用更改)之外,无法以编程方式切换此选项。在这种情况下,我建议使用AutoIt来自动切换选项。

答案 2 :(得分:0)

事实证明,您可以在自己的应用程序中以编程方式更改“下划线键盘快捷键”选项。您需要根据https://docs.microsoft.com/en-us/windows/win32/menurc/wm-updateuistate

中找到的文档,将WM_UPDATEUISTATE消息发送到您的主表单。

自从您提到Visual Basic之后,就可以执行以下操作:

Private Const WM_UPDATEUISTATE = &H128
Private Const UIS_CLEAR = &H2
Private Const UISF_HIDEACCEL = &H2
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As 
Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

然后在“ Form_Load”事件中发送消息,它将激活该窗体上存在的所有控件和菜单的键盘快捷键,以下划线显示:

Private Sub Form_Load()
    PostMessage Me.hWnd, WM_UPDATEUISTATE, UIS_CLEAR + UISF_HIDEACCEL * 65536, 0
End Sub