利用Python通过自动敲空格实现自动阅读番茄小说
起因是我在电脑Microsoft Store里面下载了番茄小说,跟模拟器里打开手机APP一样,然后通过按空格就能往下翻,因为懒得一直敲空格,就想着用python自动执行,但是中间还是有一些坎坷,记录一下整个过程或者说把网上的资源整合一下,方便自己后续再次学习或者给别人一点参考
1.实现功能的代码
一开始百度到的代码是用pyautogui模块和time模块,可以直接用那种AI自动生成代码,然后自己修改修改,我现在比较喜欢用知乎的那个,直接甩问题给他,多问几次就能给出代码,比较简单的问题不在话下。
import pyautogui
import time
# 启用防故障机制(鼠标移到左上角终止脚本)
pyautogui.FAILSAFE = True
print("5s后开始脚本")
time.sleep(5)
try:
while True:
# pyautogui.press('space') # 模拟按下空格键
pyautogui.keyDown('space')
time.sleep(0.1)
pyautogui.keyUp('space')
print("已触发空格键") # 可选:打印操作日志
time.sleep(5) # 等待10秒
except KeyboardInterrupt:
print("脚本已手动终止")
这个代码确实能实现功能,但是针对这种类似与模拟器打开的APP,好像是权限有点不够,这个敲空格的功能没起作用,在普通的网页和电脑上打开的PDF阅读器是有用的,然后我就又百度了一下,发现了一个代替pyautogui的模块,是pydirectinput模块,具体的差异可以看下面的链接,Python制作模拟按键摘录,pyautogui库及该库在某些窗口不生效的问题部分解决措施(PyDirectInput库、winio驱动级模拟),这个winio的太麻烦了,而且我怕我这半吊子搞不定,就没采用,只采用了pydirectinput,于是把代码改成下面这样
同时附上pydirectinput在GitHub上的地址,看着像是原作者,但是也好几年没有维护了PyDirectInput
import pyautogui
import pydirectinput
import time
# 启用防故障机制(鼠标移到左上角终止脚本)
pyautogui.FAILSAFE = True
print("5s后开始脚本")
time.sleep(5)
try:
while True:
# pyautogui.press('space') # 模拟按下空格键
pydirectinput.keyDown('space')
time.sleep(0.1)
pydirectinput.keyUp('space')
print("已触发空格键") # 可选:打印操作日志
time.sleep(5) # 等待10秒
except KeyboardInterrupt:
print("脚本已手动终止")
但是改了这个指令之后,在电脑上上的番茄小说里面还是不行,接着用AI,把问题抛给他,它说可能是权限不够,需要使用管理员权限,然后发现了几种使用管理员权限运行Python代码的方法,实践之后发现还真是。
2.使用管理员权限运行python的方法
目标是在代码里面就能实现以管理员身份运行Python代码,但是现在还没找到,网上搜到的方法还没来得及实现。留个坑,后面再搞
果然是要站在巨人的肩膀上,简单一搜索,就发现博客园里面就有怎么使用管理员权限运行python的方法,请参考python程序以管理员权限运行,简直太简单了,唯一的不好的地方就是回弹出那个让你确定的窗口,但是这个出于安全考虑估计也没什么好的办法。具体的代码如下
import ctypes, sys,pyautogui,time
def auto_space():
try:
print("5s后开始脚本")
time.sleep(5)
while True:
pyautogui.press('space')
print("已触发空格键")
time.sleep(5)
except KeyboardInterrupt:
print("脚本已手动终止")
def is_admin():
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
if is_admin():
auto_space() # Code of your program here
else:
# Re-run the program with admin rights
ctypes.windll.shell32.ShellExecuteW(None,"runas", sys.executable, __file__, None, 1)
- 使用Powersheel管理员权限(不推荐)
![image]()
然后在里面输入idle,就能调用python自带的集成环境,然后Ctrl+O,打开编写好的python文件,点击运行,发现就能对电脑版的番茄小说实现自动敲空格了。 - 找到Idle的exe文件,然后右键以管理员身份运行(这种太普遍,而且还得找到那个启动程序,不推荐)
3.sublime中直接运行python
通过上面的方法其实就能解决我的问题,但是每次还得打开python自带的Idle,然后才能运行python,太不方便了,就搜索怎么在sublime里面直接运行python,但是大部分的网上教程都是说新建一个编译系统,这种的我按照教程但是没法实现,也不知道问题出在哪里了,而且我发现明明sublime自带python的编译,但是Ctrl +B的时候报错,说什么找不到文件,原因我也猜到了,就是自带的编译系统里面没找到python的地址,先是按照下面这个教程自己改了改
sublime 修改默认 Python 配置环境
找到sublime安装文件的package,


以上是第一个链接的教程,发现无法更改之后,我又根据第二个链接在sublime里面修改了python的配置文件,然后就能直接在sublime运行python代码了,但是第二个链接地址找不到了,根据记忆按照下面这样操作就行



浙公网安备 33010602011771号