#前言
本文主要介绍通过python程序启动应用,并且通过参数配置,实现启动应用的同时,可以自动填入需要登录的账号、需要填写的资源信息等操作,不需要再手动填写。通过python实现自动化代填应用。
一、依赖库
首先介绍代填操作需要用到的python依赖库,根据系统类型,大致分为Linux和Windows两种:
1. Linux
import os import time from pymsgbox import alert import pyautogui import pyperclip
其中,和界面操作有关的主要是pyautogui、pyperclip两个依赖库。
其他的依赖,例如time、alert 则是不重要的,可有可无的依赖,只是为了程序更好的运行和效果。
二、相关API
其中关乎界面最主要的几个api如下:
pyautogui.press('tab') // 模拟使用键盘按下tab键pyautogui.hotkey('ctrl', 'v') // 模拟键盘使用快捷键 ctrl + vpyperclip.copy(f'{content}') // 模拟键盘复制需要的内容到剪切板pyautogui.click(x, y) // 模拟鼠标操作点击 x和y是坐标
只要利用好这几个操作 就可以实现用python程序实现自动填写需要的信息。
三、实例演示
比如说我用python写了这样一段代码:(以Linux系统演示)
pyautogui.PAUSE = 1 pyautogui.FAILSAFE = True top_left = pyautogui.position() result = args.split("|") app_name = None name = result[0].split("=") if name[0] == name and len(name) > 1: app_name = name[1] result.pop(0) else: alert(text='代填失败:没有应用名称', title='代填失败', button='OK') return window_obj = open_app_new(app_name, False)
上面的代码可以通过分割参数,拿到你需要启动的程序的名称,然后用下面的代码获取到当前的窗口,判断你需要的程序是否启动起来了:(前提是已经通过命令唤起需要的应用。唤起命令可以参考快捷方式里面的参数)
while True: if int(time.time()) - start_time > 10: alert(text='代填超时', title='代填超时', button='OK') return None if obj is not None: break if obj is None: time.sleep(2) try: if under: cmd.run('wmctrl -r :ACTIVE: -b add,below') window_pid = cmd.run('xdotool getactivewindow') if window_pid is None or window_pid == '': continue window_name = cmd.run(str(f'xdotool getwindowname {window_pid}')) obj = window_name except IndexError as idxException: pass except Exception as ex: return obj
这里确认打开了需要的应用之后,就可以通过参数来进行代填操作:
比如我需要填写用户名和密码,那么实际我需要按一下tab,把光标切换到用户名的位置,然后再参数中拿到需要的用户名,并使用
pyperclip.copy(f'{content}') // 模拟键盘复制需要的内容到剪切板 pyautogui.hotkey('ctrl', 'v') // 模拟键盘使用快捷键 ctrl + v
这两个方法,把参数中的用户名复制到用户名框里面。
再使用tab键切换到密码框
pyautogui.press('tab')
然后再通过参数来进行密码的填写:
pyperclip.copy(f'{content}') // 模拟键盘复制需要的内容到剪切板
pyautogui.hotkey('ctrl', 'v') // 模拟键盘使用快捷键 ctrl + v
然后再根据需要的操作切换到确认或者登录按钮上 ,比如我的密码框后面直接就是登录,那我只需要再执行
pyautogui.press('tab')
再执行
pyautogui.press('enter')
来进行登录操作。这样当程序执行完之后,我们需要的应用就已经打开,并且是登录好的状态了。
这里比较建议 无论什么应用,都尽量使用键盘的操作来进行,非必要少用鼠标的操作,因为不同的分辨率,鼠标的位置和移动距离是不一样的,很难保证应用打开时的位置每次都是想要的位置,更加容易出现代填失误的情况
四、总结
这样我们可以通过程序来进行程序的自动化操作,如果你有兴趣甚至可以用键盘实现更多的自动化操作,例如自动打开浏览器并打开我的主页来个点赞关注一键三连等等。可开发的空间还是很大的。