【问题标题】:Scroll Lock and Numb Lock Icon Notification in Auto Hot Key - AHKAutohotkey 中的 Scroll Lock 和 Num Lock 图标通知 - AHK
【发布时间】:2019-12-20 22:44:32
【问题描述】:

我需要一个脚本,当 Scroll Lock 或 Numb Lock(不同的图标)处于活动状态时,它将把特定的图标(我指定的)放在系统托盘中。此外,脚本需要在未按下 Lock 或 Numb 时隐藏图标。

到目前为止,我得到了这个:

If GetKeyState("Numlock", "T")
    Menu, Tray, Icon, Shell32.dll, 174

~NumLock::
If GetKeyState("Numlock", "T")
    Menu, Tray, Icon, Shell32.dll, 174
Else
    Menu, Tray, Icon, Autohotkey.exe, 1
return

这可以正常工作,但系统托盘中仍然存在默认的 AHK 图标;当 Numb Lock 或 Scroll lock 未激活时,它应该被隐藏。

谢谢。

【问题讨论】:

    标签: scripting windows-10 autohotkey


    【解决方案1】:

    来自帮助文档:

    在脚本执行过程中,可以随时使用命令Menu, Tray, Icon或Menu, Tray, NoIcon使托盘图标消失或重新出现。

    https://www.autohotkey.com/docs/commands/_NoTrayIcon.htm

    请查看以下是否有效:

    If GetKeyState("Numlock", "T")
        Menu, Tray, Icon, Shell32.dll, 174
    
    ~NumLock::
    If GetKeyState("Numlock", "T")
    {
        Menu, Tray, Icon
        Menu, Tray, Icon, Shell32.dll, 174
    } Else
        Menu, Tray, NoIcon
    Return
    

    【讨论】:

    • 如果我将Menu, Tray, Icon, Autohotkey.exe, 1 更改为Menu, Tray, NoIcon,它只会工作一次并停止。
    • 您还需要在自定义图标之前明确添加Menu, Tray, Icon。
    • 好的,所以我创建了两个脚本。一个用于 NumLock,另一个用于 ScrollLock。除了 GetKeyState 值之外,它们是相同的,一个具有“Numlock”,另一个具有“ScrollLock”。当我当时只使用一个脚本时没有问题,但是当我尝试同时使用这两个脚本时,事情就会出现问题。当按键被按下时,第二个脚本停止注册。
    • 根据我的经验,最近启动的脚本会拦截键盘钩子,阻止它在其他脚本中使用(除非它以较低的优先级运行或之前的脚本在管理模式下运行),而这可能是这种行为的原因。因此,我会在两个脚本中使用 SetTimer 来切换托盘图标。
    • 那是另一个问题。如果它在一个脚本中工作,我会在接受此答案后在该上下文中提出一个新问题。
    猜你喜欢
    • 2012-02-22
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多