我正在尝试在 autohotkey 中构建一个脚本,这将使我自己和抽认卡程序 Anki 的其他用户在学习过程中途退出时感到烦恼。
到目前为止,我已经写了以下内容
InputBox, TimeMin, ATTENTION, Enter how long would you like to commit to answering flashcards in minutes.
TimeMili:=TimeMin*60*1000
SetTimer, Meh, %TimeMili%
a:=0
While a < 1
{
IfWinActive User 1 - Anki
{
MouseMove,1298, 981
WinKill Task Manager
WinMaximize User 1 - Anki
}
Else
{
WinKill Task Manager
IfWinExist User 1 - Anki
{
WinActivate User 1 - Anki
MouseMove,1298, 981
}
}
}
return
!F4::
MouseMove 350,350
return
Meh:
MsgBox WELL DONE U R NOW FREE
SetTimer,,OFF
a:=10
Return
Lwin::
Return
Rwin::
Return
此脚本禁用 alt + f4,杀死 taskmanager,在最小化时最大化 anki 窗口,并在用户定义的分钟数内防止鼠标靠近程序窗口外部的红色退出按钮。由于 anki 可以在不使用鼠标的情况下进行导航,因此可以选择性地阻止拖延行为而不影响学习。
该脚本运行良好,但可以通过重新启动计算机或通过控制 alt delete 缓慢注销(win + L 不会终止脚本)来克服它。控制 alt delete 在现代 Windows 版本中很难禁用,可能是作为恶意软件预防保护措施。
我建议的解决方案是让脚本在激活时执行一些烦人的操作(例如删除所有桌面快捷方式),并在用户定义的时间段终止时撤消相同的操作。我相信如果用户注销/关闭/重新启动/缓慢注销,这将使烦人的操作无法解决。
我考虑过使用该脚本在启动文件夹中创建另一个烦人的脚本,但这可以通过注销而不是重新启动/关闭来规避。
只有当用户有很多键盘快捷键时,重命名/删除键盘快捷键才会令人讨厌。
在桌面和其他文件夹上创建大量文本文件太容易逆转,用户可以忽略,直到他们完成拖延
禁用互联网会很好,但它仍然会使离线分心(例如视频游戏)可用。
如何最好地设计这样一个动作,该动作将暂时禁用一台微不足道且可靠但又耗时且难以撤消的 PC?