我有一个脚本,应该是模仿Colemak键盘布局。我希望能够用Win+Space切换布局
下面是剧本:
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键。我希望弹出或类似的东西,只是告诉用户,它改变了,没有任何必要或可能的任何交互。什么是可能的?
发布于 2020-12-11 13:59:41
有两件事:
:=操作符。因此,您需要的不是最初声明colemak = true,而是colemak := true。ChangeLayout()有自己的作用域,其中全局变量colemak的初始声明不可见。为了解决这个问题,您需要在colemak前面添加global,从而使它成为一个“超级全局”变量。最终代码:
global colemak := true
#If %colemak% = true
hotkeys...
#If
#Space::ChangeLayout()
ChangeLayout()
{
colemak := !colemak
if (colemak = false) {
MsgBox Colemak deactivated.
} else {
MsgBox Colemak activated.
}
}https://stackoverflow.com/questions/65252328
复制相似问题