AutoHotKey让特定用户按键失效
每次春节假期,表弟他们都很爱使用我的电脑玩4399等网站的小游戏,由于这些人经常用力按ASDF键,我的键盘都换了好几个了。有没有办法可以实现表弟登录电脑时这几个按键就失效,自己登录却不受影响的方法。
【解题思路】
之前杂志上已经有人提供了通过专用软件解决的方法,今天我则提供另外一个思路。AutoHotKey是Windows平台下的热键脚本语言,主要用于实现键盘、鼠标的自动按键功能,映射、屏蔽某些按键更是小菜一碟。再配合系统的任务计划功能,就可以实现特定用户登录后自动屏蔽某些按键的效果。本方案的好处,就是不用为了某一个特定的功能专门安装一款软件。AutoHotKey则不同,屏蔽按键只是它灵活应用的一个方面而已。
【解题方法】
首先下载AutoHotKey,不过这里我推荐小众软件网出品的“AHK懒人包”,里面附带了一些很好用的脚本,方便用户学习、使用。将下载的“AutoHotKey 懒人包.7z”解压到任意位置,运行其中的Ahk2Exe.exe待用(位于“AutoHotKey懒人包/AutoHotKey中文版/Compiler/”目录下)。
接下来打开记事本,写入如下脚本:
#NoTrayIcon
A::return
S::return
D::return
F::return
第1行“#NoTrayIcon”代码可以使脚本运行后不显示通知区域图标,否则它将会在通知区域显示一个绿色H的图标。这是避免被使用电脑的人发现,从而可能中止脚本,导致我们的目的失败。第2~5行的意思是将ASDF这四个按键进行映射,映射到“return”,这里可以理解为按下这几个按键后不产生任何动作。如果还想要屏蔽其他按键,需要按照AutoHotKey规定的按键名称编写,可以参考包内附带的帮助文档(在“按键列表”这一链接下)。
点击“文件→另存为”,将保存类型改为“所有类型(*.*)”,并在“文件名”一栏中填入“禁用ASDF.ahk”(文件名可以随意填写,但是扩展名必须为ahk,另外外侧要用英文双引号)。
接下来切换到Ahk2Exe程序窗口,点击“Source”后面的“Browse”按钮,选择“禁用ASDF.ahk”。再点击“Destination”后面的“Browse”按钮,选择可执行脚本文件的保存位置以及文件名。比如我为了使脚本更具迷惑性,故意将生成的exe文件命名为Svchost.exe(图1)。点击最下方的“Convert”按钮便可生成可执行脚本文件了。
小提示:
Svchost.exe是Windows系统从动态链接库(DLL)中运行的服务的通用主机进程名称,用户登录系统后,往往会有多个Svchost.exe进程,普通用户是不敢随意结束这些进程的。
将生成的Svchost.exe文件放到一个比较隐蔽的位置,然后切换到用户(即切换到给“表弟”用的账户)。在这个账户下,依次打开“控制面板→管理工具→任务计划程序”,在右边的“操作”面板中点击“创建基本任务”,此时会打开“创建基本任务向导”界面。向导共5步:第一步,填写任务计划的名称及描述;第二步,“希望该任务何时开始”,选择“当前用户登录时”;第三步,“希望该任务执行什么操作?”,选择“启动程序”;第四步,点击“浏览”按钮,选择刚才生成的Svchost.exe文件;第5步,系统会显示该任务计划的摘要,确认无误后,点击“完成”按钮。
注销当前用户后再重新登录,此时按下ASDF按键就不起任何作用了。当“表弟”再想玩游戏时,告知他这几个按键已“坏”,他也就没有办法了。
小提示:
有经验的用户不需要切换账户,可以直接点击“创建任务”创建任务并指定生效的用户。