python自动打开微信,登陆,关闭窗口
本帖最后由 Jxing233 于 2023-11-26 22:56 编辑随便写的一个小工具,有很大的局限性写这个的原因是每次打开微信开机自启动后仅仅是打开了微信还要自己点击登陆,然后关闭窗口(看看隔壁QQ都有打开软件自动登录,隔壁TG更是打开开机自启后还有自动隐藏到托盘的选项,(zxl****))。
先把代码放上(注释是用CodeGeeX写的)
import pygetwindow as gw
import subprocess
import pyautogui
import time
def activate_window(window_title):
try:
window = gw.getWindowsWithTitle(window_title)
window.activate()
return window
except IndexError:
return None
except Exception as e:
print("激活窗口异常:", str(e))
return None
def click_window_point(x, y, clicks=1, interval=0.1):
# 定义一个函数,参数为x,y,clicks,interval,用于模拟鼠标点击操作
pyautogui.moveTo(x, y, duration=0.01)
for _ in range(clicks):
pyautogui.click()
time.sleep(interval)
def main():
# 定义应用程序路径
app_path = r'微信的绝对路径'
# 启动应用程序
subprocess.Popen(app_path)
print('打开VX')
# 循环检查应用程序是否已经打开
while True:
# 获取所有应用程序窗口标题
all_windows = gw.getAllTitles()
# 检查应用程序是否已经打开
if "微信" in all_windows:
# 激活微信窗口
wechat_window = activate_window("微信")
# 检查应用程序是否已经打开
if wechat_window is not None:
# 获取微信窗口宽度
window_width = wechat_window.width
# 获取微信窗口高度
window_height = wechat_window.height
# 检查微信窗口高度是否小于600,宽度是否小于500
if window_height < 600 and window_width < 500:
# 获取微信窗口左上角x坐标
target_x = wechat_window.left + 200
# 获取微信窗口左上角y坐标
target_y = wechat_window.top + 420
# 点击微信窗口左上角坐标
click_window_point(target_x, target_y)
# 等待2.5秒
time.sleep(2.5)
print("等待微信登录")
# 检查微信窗口高度是否大于600,宽度是否大于500
elif window_height > 600 and window_width > 500:
# 初始化vx_window
vx_window = None
# 获取所有应用程序窗口标题
windows = pyautogui.getWindowsWithTitle("微信")
# 遍历应用程序窗口标题
for window in windows:
# 检查应用程序窗口标题是否为微信
if "微信" in window.title:
# 记录微信窗口
vx_window = window
# 跳出循环
break
# 检查微信窗口是否已经找到
if vx_window is not None:
# 激活微信窗口
vx_window.activate()
# 获取微信窗口右上角x坐标
right_top_x = vx_window.left + vx_window.width - 10
# 获取微信窗口右上角y坐标
right_top_y = vx_window.top + 10
# 移动鼠标到微信窗口右上角坐标
pyautogui.moveTo(right_top_x - 10, right_top_y + 20)
# 等待0.25秒
time.sleep(0.25)
# 点击鼠标
pyautogui.click()
else:
# 检查微信窗口是否已经找到
print("微信窗口未找到。请确认微信窗口已经打开。")
print("关闭微信窗口")
# 跳出循环
break
if __name__ == "__main__":
main()
里面用了两个第三方库需要使用
pip install pygetwindow
pip install pyautogui安装
然后再写一个bat脚本用来运行这些代码
@echo off
chcp 65001
mode con: cols=80 lines=25
:CheckNetwork
ping -n 1 www.baidu.com >nul
ping -n 1 www.qq.com >nul
if errorlevel 1 (
echo 无法连接到网络,等待5秒后继续检测。
timeout /t 5 >nul
goto CheckNetwork
) else (
echo 有网络连接,开始运行,运行过程中不要移动鼠标
timeout /t 1 >nul
python "上面的py脚本的路径"
)
echo 完成。
因为我是在学校在开机后自动连接校园网要一会,所以还写了检测是否有网的功能
将两个文件写完后再使用win自带的任务计划程序把bat脚本建个自动计划在登陆后运行就可以了 感谢分享,一切以解决自身需求的都是好想法, 感谢分享 是可以微信自己启动后,自动登陆,然后关闭窗口一条龙吗 方便多了,或许改一改可以一键自动开任意软件 这个很方便! 跟RPA相同的技术 这个方便了 windows不清楚,mac的微信好像可以开机自动登录然后配合小助手感觉很好用 这下好方便了。谢谢分享 方便了这样,不会封号吧{:1_904:} 学习了,这个很实用,感谢分享 挺不错的,嘻嘻 有空试试,不知道好不好用