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

Vbscript 如何以编程方式更改;在键盘快捷键下面划线“;控制面板设置?,vbscript,keyboard,controlpanel,Vbscript,Keyboard,Controlpanel,在“控制面板>易用性中心>使键盘更易于使用”中,有一个选项用于“在键盘快捷键和快捷键下面加下划线” 有没有一种方法可以通过编程来打开和关闭它? 我正在使用Visual Basic脚本,但可以使用.NET AFAIK,除了自动执行相应的GUI操作(打开控制面板,打开/关闭选项并应用更改)之外,无法通过编程方式切换此选项。在这种情况下,我建议使用自动切换选项 运行注册表编辑器并转到HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Prefe

在“控制面板>易用性中心>使键盘更易于使用”中,有一个选项用于“在键盘快捷键和快捷键下面加下划线”

有没有一种方法可以通过编程来打开和关闭它?
我正在使用Visual Basic脚本,但可以使用.NET

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

  • 运行注册表编辑器并转到HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Preference

  • 现在创建或修改一个调用On的字符串值(REG_SZ),并将其值设置为1

  • 信息来自:

    事实证明,您可以通过编程在自己的应用程序中更改“下划线键盘快捷键”选项。您需要根据以下文档将WM_UpdateUnite消息发送到主窗体:

    既然您提到了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