启动时自动运行键盘快捷键 (FN + WIN)

启动时自动运行键盘快捷键 (FN + WIN)

我有一台 Redragon K580 键盘,带有一个选项,可以使用快捷键(FN + Win)锁定 Windows 键。问题是它不会永久锁定,每次重启后我都必须这样做,而且大多数时候我每次玩游戏前都会忘记这样做。我不想使用注册表黑客永久禁用它,因为我倾向于在不玩游戏时使用它。

那么,有没有办法使用某些 VBS SendKey 脚本或 AutoHotKey 在启动时自动禁用它?谢谢,

答案1

创建并运行.ahk 脚本:

#NoEnv
#SingleInstance force

If not A_IsAdmin ; For Win10 users
    Run *RunAs "%A_ScriptFullPath%"

Menu Tray, Icon, shell32.dll, 110
Menu Tray, NoStandard
Menu Tray, Add, Block [Win], +LWin
Menu Tray, Add, AutoStart, AutoStartSwitch
Menu Tray, Add, Exit, Exit

winBlock := True ; Blocked at start
If winBlock
    Menu Tray, Check, Block [Win]

SplitPath, A_ScriptName, , , , OutNameNoExt
LinkFile := A_StartupCommon "\" OutNameNoExt ".lnk"
If FileExist(LinkFile)
    Menu Tray, Check, AutoStart
Return

+LWin:: ; Shift + LWin — toggle block
    winBlock := Not winBlock
    Menu Tray, Togglecheck, Block [Win]
    Return

#If winBlock
    LWin::Return ; Block
#If

AutoStartSwitch:
    If FileExist(LinkFile)
        FileDelete % LinkFile
    Else
      FileCreateShortcut % A_ScriptFullPath, % LinkFile, % A_ScriptDir
  Menu Tray, ToggleCheck, AutoStart
    Return

Exit:
    ExitApp

用于Shift + LWin阻止/解除阻止LWin按钮。

答案2

这是一个可能的解决方案 -

  1. 安装自动热键
  2. 使用以下代码创建“禁用 LWin.ahk” -
#Requires AutoHotkey v1.1.37

#NoEnv  
#SingleInstance force  
SendMode Input 
SetWorkingDir %A_ScriptDir%

LWinIndex := 1

LWin::
If LWinIndex = 1 {  ; left win button is disabled
    ToolTip LWin Disabled
    SetTimer, RemoveToolTip, -1000
    Return
    }
Else Send {LWin}  ; left win button is enabled
Return

!Esc::  ; Alt + Esc
If LWinIndex = 1 {
    LWinIndex := 0
    ToolTip LWin Enabled
    SetTimer, RemoveToolTip, -1000
    }
Rlse {
    LWinIndex := 1
    ToolTip LWin Disabled
    SetTimer, RemoveToolTip, -1000
    }
Return

RemoveToolTip:
ToolTip
Return
  1. Disable LWin.ahk在启动文件夹中放置或快捷方式此 ahk%AppData%\Microsoft\Windows\Start Menu\Programs\Startup
    这应该在启动时运行 AHK 并LWin在您登录时禁用。
  2. 完毕!

Alt+Esc应启用或禁用LWin
我在这里使用是!Esc因为 AHK 无法识别Fn大多数键盘上的按钮。

相关内容