解决头歌禁止复制粘贴
相信被头歌的禁止复制粘贴恶心到了的人肯定不止我一个,这次写一个链表的题,每一关都要用到上一关的代码,每一关都要重新把4种构造函数和4个功能函数重新打一遍,只能说很符合我对头歌的印象😅😅😅。
于是本着偷懒顺便造福大众的想法,我开始寻找解决的办法。经过一天一夜的尝试与搜索,终于找到了一种解决办法:调用系统API模拟键盘输入。
正文
如何调用系统API呢?如果是大佬当然有无数的方法,但我们作为小白,选择最简单的方法就好了,那就是我们无敌的Python(撒花)
首先,安装PyWinHook
和PyUserInput
PyWinHook
是Python的一个第三方库,可以对键盘、鼠标进行监听,PyUserInput
可以模拟键盘鼠标输入。
https://www.lfd.uci.edu/~gohlke/pythonlibs/#pywinhook
在网址中找到对应的版本下载,如我的Python版本是3.10.10 64bit
,那么就下载pyWinhook‑1.6.2‑cp310‑cp310‑win_amd64.whl
,cp310
表示3.10
,amd64
表示64位。
Python版本可以在命令行输入python
查看,或者如果用的vscode可以直接在任意Python文件界面的右下角看到。
下载完毕后,打开文件夹,右键刚下载的文件,复制文件路径。然后在命令行中输入
1 | pip install 路径 |
这样,我们就安装好了需要的第三方库,可以开始愉快地偷懒了ヾ(≧▽≦*)o
。
。
。
本来应该是这样的……但实际用了之后,我才发现这玩意跑起来跟我想的根本不一样。因为遇到了一大障碍——代码补全。
本来方便敲代码地代码补全,在这个时候却起了反作用。由于编辑器自动补全括号,自动缩进,就导致原本正常的代码打出来之后就变得,嗯……一言难尽。只能说,作为一名程序员,在看到这样的代码时,本能地产生了一种恐惧。
然后,我想着只要先对字符串进行一下修改,比如把会自动补全的}
之类的去掉,删去部分回车和空格等。再然后,就陷入了长达一天的修改与尝试的循环(一天一夜里这个占了一天)……头歌的代码补全绝对是我见过的最魔幻的东西,我打一个}
它就再给我补一个,我不打}
它也不补,我打一个回车能变成两个回车,一个制表变成两个制表,零个制表还是零个制表……一天下来,我仿佛见证了生命进化的万千变化,整个人的精神都达到了新的高度~~(血压)~~。
那么说回正题,经过一天的尝试,最终找到了一种稍微正常的处理方法,能让打出来的代码没有那么抽象,以下是代码:
1 | from pykeyboard import * |
这样处理后,效果差不多是这样
相信我,这已经是最正常的一个版本了,没有超出屏幕的缩进,没有多出来的空行,没有多出来的大括号,相比于其他版本,简直就是奈亚子与奈亚拉托提普相比。
当然,如果有人有足够的耐心、时间,也可以寻找一下更优的办法,找到了记得踢我一脚,反正我是不想尝试了……
花絮
(失败尝试……)
经过这次事件我才发现,头歌的格式化代码功能会把头文件引入的#include
格式化到宏定义#define
的后面,还会把->
符号变成- >
导致编译错误……本来以为把n
代码补全为using namespace
已经够逆天了,没想到还有高手……