首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动热键,切换布尔值不起作用

自动热键,切换布尔值不起作用
EN

Stack Overflow用户
提问于 2020-12-11 13:33:57
回答 1查看 280关注 0票数 1

我有一个脚本,应该是模仿Colemak键盘布局。我希望能够用Win+Space切换布局

下面是剧本:

代码语言:javascript
复制
colemak = true

#If %colemak% = true
hotkeys...
#If

#Space::ChangeLayout()

ChangeLayout()
{
    colemak := !colemak
    if (colemak = false) {
        MsgBox Colemak deactivated.
    } else {
        MsgBox Colemak activated.
    }
}

当我按Win+Space时,colemak变量不会改变,它停留在true。我在这里做错什么了?

另外,我希望有某种反馈,告诉用户布局发生了变化。MsgBox并不是我要找的东西,因为它需要用户按ok键。我希望弹出或类似的东西,只是告诉用户,它改变了,没有任何必要或可能的任何交互。什么是可能的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-11 13:59:41

有两件事:

  1. 为了声明变量,需要使用:=操作符。因此,您需要的不是最初声明colemak = true,而是colemak := true
  2. 函数ChangeLayout()有自己的作用域,其中全局变量colemak的初始声明不可见。为了解决这个问题,您需要在colemak前面添加global,从而使它成为一个“超级全局”变量。

最终代码:

代码语言:javascript
复制
global colemak := true

#If %colemak% = true
hotkeys...
#If

#Space::ChangeLayout()

ChangeLayout()
{
    colemak := !colemak
    if (colemak = false) {
        MsgBox Colemak deactivated.
    } else {
        MsgBox Colemak activated.
    }
}

来源

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65252328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档