zjg121 发表于 2024-4-4 06:37

屏幕固定区域等时间间隔截屏一次

启动程序,第二次点击鼠标确定区域的左上角位置,第三次点击鼠标确定区域的右下角位置,第四次点击确定下一页按钮的位置,等待5秒后,开始每秒截屏一次。
from pynput import mouse
import pyautogui
from time import sleep



# 初始化一个空列表来存储点击的坐标
click_positions = []


def on_click(x, y, button, pressed):
    if pressed:
      print(f'Clicked at ({x}, {y}) with {button}')

      # 将点击的坐标添加到列表中
      click_positions.append((x, y))

      # 如果列表中有两个坐标,就不再记录更多
      if len(click_positions) == 4:
            # 停止监听
            return False

      # 开始监听鼠标事件


with mouse.Listener(on_click=on_click) as listener:
    listener.join()

# 打印前两次点击的坐标
if len(click_positions) == 4:
    print("First click position:", click_positions)
    print("Second click position:", click_positions)
    print("Third click position:", click_positions)
    print("Fourth click position:", click_positions)
else:
    print("Not enough clicks recorded.")
sleep(10)
for i in range(49):
    # 截取屏幕,参数为截屏区域的左上角坐标和宽高
    im = pyautogui.screenshot(region=(click_positions, click_positions, click_positions, click_positions))

    # 保存截图到文件
    im.save(f'd:/a/截屏{str(i).zfill(3)}.png')
    sleep(1)
    # 鼠标左键点击指定坐标的位置,参数为坐标位置
    pyautogui.click(x=click_positions, y=click_positions)

longhua23 发表于 2024-5-17 16:26

试了楼主的代码好像有点问题,截屏出来不正确。百度了一下重新优化了一下。只要是截屏计算那里。
from pynput import mouse
import pyautogui
from time import sleep
'''启动程序,第一次点击无效,第二次点击鼠标确定区域的左上角位置,
第三次点击鼠标确定区域的右下角位置,
第四次点击确定下一页按钮的位置,
等待5秒后,开始每秒,自动翻页截屏一次。'''
# 初始化一个空列表来存储点击的坐标
click_positions = []
print(click_positions)

def on_click(x, y, button, pressed):
    if pressed:
      print(f'Clicked at ({x}, {y}) with {button}')
      # 将点击的坐标添加到列表中
      click_positions.append((x, y))
      # 如果列表中有两个坐标,就不再记录更多
      if len(click_positions) == 4:
            # 停止监听
            return False

# 开始监听鼠标事件
print('请开始点击')
with mouse.Listener(on_click=on_click) as listener:
    listener.join()

# 打印前两次点击的坐标
if len(click_positions) == 4:
    print("First click position:", click_positions)
    print("Second click position:", click_positions)
    print("Third click position:", click_positions)
    print("Fourth click position:", click_positions)
else:
    print("Not enough clicks recorded.")

print('等待5秒')
sleep(5)

for i in range(49):
    # 获取左上角坐标
    top_left_x = click_positions
    top_left_y = click_positions

    # 获取右下角坐标
    bottom_right_x = click_positions
    bottom_right_y = click_positions

    # 计算宽度和高度
    width = bottom_right_x - top_left_x
    height = bottom_right_y - top_left_y

    # 截取屏幕,参数为截屏区域的左上角坐标和宽高
    im = pyautogui.screenshot(
      region=(top_left_x,top_left_y,width,height))
    # 保存截图到文件
    im.save(f'{str(i).zfill(2)}.png')
    sleep(1)
    # 鼠标左键点击指定坐标的位置,参数为坐标位置
    pyautogui.click(x=click_positions, y=click_positions)

52zct 发表于 2024-4-4 10:40

求打包版本,我尝试打包,总是出现报错raise Exception(f"Qt plugin directory '{plugin_src_dir}' does not exist!")
Exception: Qt plugin directory 'C:/Users/???/AppData/Local/Programs/Python/Python310/lib/site-packages/PyQt5/Qt5/plugins' does not exist!

linweite 发表于 2024-4-4 08:55

拿走谢谢

caogen666 发表于 2024-4-4 08:57

{:1_893:}{:1_893:}{:1_893:}{:1_893:}{:1_893:}{:1_893:}{:1_893:}{:1_893:}{:1_893:}{:1_893:}{:1_893:}{:1_893:}谢谢分享

unicornTwo 发表于 2024-4-4 09:09

最喜欢代码分析

鹿坪 发表于 2024-4-4 10:10

又学到了,谢谢分享

wyesheng 发表于 2024-4-4 13:16

水平不够,特地来学习学习,哈哈

q3520520 发表于 2024-4-4 13:34

我很赞同!

sihehe 发表于 2024-4-7 10:00

这个以前我也用python写过类似的功能,自动截图全屏,并将截图的文件发到企业微信机器人.{:1_918:}

dlyuan 发表于 2024-4-12 23:29

感谢大佬分享
页: [1] 2
查看完整版本: 屏幕固定区域等时间间隔截屏一次