按键大师:用Python实现无人值守的自动化操作

哈喽,大家好,我是木头左!

在这个科技日新月异的时代,的生活被各种软件和应用所包围。然而,你是否想过,如果你能够控制这些应用的操作,那么你的生活将会变得多么的便捷?今天,我将教你如何使用Python的pynputpyautogui库,记录各种按键操作,并用它们来执行操作。这不仅可以帮助你提高工作效率,还可以让你在无聊的时候找到乐趣。

一、Python的键盘记录器:pynput

Python的pynput库是一个强大的工具,它可以让你控制和监控你的电脑。你可以使用它来记录和重播你的键盘和鼠标操作。这对于那些想要自动化他们的工作流程的人来说,是非常有用的。

你需要安装pynput库。你可以使用pip来安装它:

python 复制代码
pip install pynput

然后,你可以创建一个KeyboardController对象,并使用它的on_press方法来记录按键操作。例如:

python 复制代码
from pynput.keyboard import Controller, Key

keyboard = Controller()

def on_press(key):
    print('{0} pressed'.format(key))
    if key == Key.esc:
        return False

with keyboard.Listener(on_press=on_press) as listener:
    listener.join()

这段代码将会在每次按下一个键时打印出该键的名称,并在按下Esc键时停止监听。

二、自动化操作:pyautogui

有了pynput,你就可以开始创建自动化操作了。Python的pyautogui库可以让你模拟鼠标和键盘操作。你可以使用它来打开应用程序,点击按钮,输入文本等等。

你需要安装pyautogui库。你可以使用pip来安装它:

python 复制代码
pip install pyautogui

然后,你可以使用pyautogui的各种函数来模拟操作。例如,以下代码将会打开记事本并输入一些文本:

python 复制代码
import pyautogui
import time

time.sleep(2)  # 等待2秒,让你有时间切换到记事本窗口
pyautogui.typewrite('Hello world!')  # 输入文本
pyautogui.press('enter')  # 按下回车键

这段代码会在你运行它后2秒钟打开记事本,并输入"Hello world!",然后按下回车键。你可以在任何你想要的地方运行这段代码,只要你有焦点在正确的窗口上。

三、结合使用:按键大师

现在,你已经知道了如何记录按键操作和使用pyautogui来模拟操作。那么,你可以将这两个功能结合起来,创建一个真正的按键大师。你可以创建一个脚本,当你运行它时,它会记录你的按键操作,并使用这些操作来自动化你的命令行任务。例如:

python 复制代码
import pynput
import pyautogui as pw
import time
import os
import random
from datetime import datetime, timedelta, timezone
from selenium import webdriver
from selenium.webdriver.common.keys import Keys, KeyCodes as kc, KeyModifiers as km, ActionKeys as ak, ENTER, ESC, SPACE, DLEFT, DRIGHT, UPARROW, LARROW, NUMPAD8, NUMPAD2, NUMPAD4, SEMICOLON, F6, F5, PAGE_UP, PAGE_DOWN, CTRL, SHIFT, CMD, A, B, BACKSPACE, NILVALUE, HIDEKEYS, TOGGLEFULLSCREEN, IMEPROPERTIES, F11, F12, PAUSE, SCROLLLOCK, COMMA, PERIOD, CAPS_LOCK, KP_PLUS, KP_MINUS, KP_ENTER, KP_EQUALS, KP_DIVIDE, KP_MULTIPLY, KP_SUBTRACT, KP_END, KP_HOME, KP_PGUP, KP_PGDN, KP_ENDTAB, KP_F5, KP_F3, KP_F11, KP_F12, KP_ESCAPE, KP_INSERT, KP_DELETE, NUM_0, NUM_1, NUM_2, NUM_3, NUM_4, NUM_5, NUM_6, NUM_7, NUM_8, NUM_9, ASTR_SPACE, ASTR_XFERMODECHANGEDIRECTIONKEYSALTNONEMETA2MODEMETAQUICKFORWARDMETAQUICKRETURNMETAPLAYPAUSEMEDIARECORDMUTEUNDOFOCUSSONORAFTERTOGGLEZOOMINVENTURERCONTROLSAPPLICATIONDETAILSSYSTEMEXITWINDOWS+XKP_SLASHKP_ASTERISKKP_OPENBRACKETKP_CLOSEBRACKETKP_BACKSLASHKP_PIPEKP_ATKP_HASHKP_PERCENTKP_LESSKP_GREATERKP_AMPERSANDKP_SINGLEQUOTEKP_DOUBLEQUOTEKP_VERTICALBARKP_HLINEKP_DBLLINEKP_CARETKP_UNDERSCOREKP_GRAVEKP_LEFTPARENTHESISKP_RIGHTPARENTHESISKP_LEFTBRACKETKP_RIGHTBRACKETKP__BACKQUOTEKP__OPENCURLYBRACKETKP__CLOSECURLYBRACKETKANJISHIFTCUTTEROMANIAKOYAKAGIRIMOHIRAGANANEWLINEHANGULJUNGWONGCAPITALMCHARLATINCAPITALNUNJULAMYEAUDIOVIDEOFILESHAREWEBCAMMMSKYPEWHATSAPPXXXXVIRTUALKEYBOARDWIN+LWIN+RWIN+MWIN+UWIN+DWIN+EWIN+FWIN+TWIN+GWIN+HWIN+YWIN+UWIN+IWIN+OWIN+PWIN+[']WIN+\\WIN+|WIN+/WIN+?WIN+↑WIN+↓WIN++WIN--WIN-WIN*WIN&WIN^WIN<win>win\u00a1win\u00a7win\u00b4winu00b6win\u00b7win\u00bbwin\u00bfwin\u20acwinu2122win\u2190win\u2195win\u23cewin\u2409win\u25aawinu25abwin\ufe4fwin\ufeffwinufffdwin\ufffbwinuffffwin\u05bewin\u05c0win\u05c3winu05c6win\u05d8win\u05dcwin\u05e6win\u05f4win\u061fwin\u061dwinu064bwin\u0670win\u06d6[aAiAUOoOlOE]OPQRSTUAVYXWZ[]^_{|}~
> 我是木头左,感谢各位童鞋的点赞、收藏,我们下期更精彩!
    
![](https://img-blog.csdnimg.cn/img_convert/f45fb6d6b8550de7b64d170be83f7581.png)
相关推荐
你好潘先生7 小时前
别再记命令了,用 yeero do 说句人话就能跑脚本,而且不烧 token
服务器·python·命令行
Agent_大师8 小时前
WebSocket 行情重连成功,K线缺口不会自动消失
python
荣码8 小时前
LLM结构化输出:让AI返回JSON而不是废话,我踩了4个坑
java·python
copyer_xyf8 小时前
FastAPI 如何连接 MySQL
后端·python
apocelipes21 小时前
常用编程语言和库的正则表达式性能对比
c语言·c++·python·性能优化·golang·开发工具和环境
用户8356290780511 天前
使用 Python 在 PDF 中创建与管理书签
后端·python
MeixianAgent1 天前
Python 回测数据入口怎么验?历史 K 线入库前先做 5 个检查
后端·python
咕白m6251 天前
用 Python 实现一键批量查找与替换 Excel 数据
后端·python
SelectDB2 天前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
荣码2 天前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python