如何使我的反拖延脚本免于注销和关机?

How to immunise my antiprocrastination script against logout and shutdown?

我正在尝试在 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,终止任务管理器,在 anki 最小化时最大化它 window 并防止鼠标靠近程序外部的红色退出按钮 window 一段时间用户定义的分钟数。由于可以在不使用鼠标的情况下导航 anki,因此这可以选择性地阻止拖延行为而不妨碍学习。

脚本运行良好,但可以通过重新启动计算机或通过控件 alt delete 进行缓慢注销来解决(win + L 不会终止脚本)。 Control alt delete 在现代 windows 构建中很难禁用,可能是作为恶意软件预防保护措施。

我建议的解决方案是让脚本在激活时执行一些烦人的操作(例如删除所有桌面快捷方式),并在用户定义的时间段终止时撤消相同的操作。我相信如果用户登录 out/shuts down/restarts/slow 注销,这将使烦人的操作无法解决。

我考虑过使用该脚本在启动文件夹中创建另一个烦人的脚本,但这可以通过注销而不是 restarting/shutting 关闭来避免。

Renaming/deleting 只有当用户有很多键盘快捷键时,键盘快捷键才会让人讨厌。

在桌面和其他文件夹中创建大量文本文件太容易逆转,并且可以在用户完成生产之前忽略它

禁用互联网会很好,但仍然会留下离线干扰(例如视频游戏)可用。

如何最好地设计这样一个操作,该操作将暂时禁用微不足道且可靠但撤消起来既费时又无聊的 PC?

虽然您的 AutoHotkey 解决方案是一种阻止人们退出程序的聪明方法,但您永远不会获得真正 100% 坚如磐石的解决方案,原因如下:您登录的用户是 允许做事。如果你能做一些事情,你和其他人就会想出一个聪明的方法来做这件事,不会,就像 AutoHotkey 一样神奇,它无法禁用电源线的拔出。

另一方面,是的,你可以让规避保护措施的惩罚越来越痛苦(直到倒数第二个 format c: 核选项,我会保证 99% 的合规性),但你将永远开始 运行 问题,你仍然得不到合规。

更好的解决方案是使用通过Group/Local安全策略融入Windows的功能,将[=27= 】 限制事物。通过使用具有锁定权限的特殊用户,他们实际上将无法执行某些操作(例如,您可以禁用开始菜单、电源选项、站点等)。

真的想要将所有内容锁定到一个应用程序?好吧 Windows 有一个特殊的 Kiosk Mode where you literally can -only- have one app running, and you can't get out of it no matter what. There are dozens of special Kiosk Policies 可以应用于从 Ctrl-Alt-Delete 删除注销选项到删除任务管理器。