吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 453|回复: 8
上一主题 下一主题
收起左侧

[Python 原创] 记录当前鼠标点击的动作信息

[复制链接]
跳转到指定楼层
楼主
iPJ241111 发表于 2024-11-27 22:05 回帖奖励
本帖最后由 iPJ241111 于 2024-11-28 00:31 编辑

###还有一些问题 待修改
import
csv
from datetime import datetime
from pynput import mouse
from pygetwindow import getActiveWindow
from pynput import mouse
# def on_click(x, y, button, pressed):
#     if pressed:
#         # 获取当前活动窗口
#         active_window = getActiveWindow()
#         if active_window:
#             print(f"Mouse clicked. Active window: {active_window.title}")
# 初始化计数器
total_clicks = 0
left_clicks = 0
right_clicks = 0
# 定义文件路径和CSV文件头
csv_file_path = 'mouse_clicks_1127.csv'
csv_headers = ['Click Type', 'X Coordinate', 'Y Coordinate', 'click_data', 'click_time', 'Total Clicks', 'Left Clicks', 'Right Clicks', 'Window']
# 创建一个函数来写入CSV文件(仅在程序开始时写入表头)
def write_csv_header(file_path, headers):
    with open(file_path, mode='w', newline='') as file:
        writer = csv.writer(file)
        writer.writerow(headers)
# 定义一个函数来处理鼠标点击事件并写入CSV文件
def on_click(x, y, button, pressed):
    global total_clicks, left_clicks, right_clicks
    if pressed:
        click_data = datetime.now().strftime('%Y-%m-%d')
        click_time = datetime.now().strftime('%H:%M:%S')
        click_type = 'Left' if button == mouse.Button.left else 'Right'
        active_window = getActiveWindow()
        print(f"Mouse clicked. Active window: {active_window.title}")
        # 更新点击次数
        if click_type == 'Left':
            left_clicks += 1
        elif click_type == 'Right':
            right_clicks += 1
        total_clicks += 1
        
        # 准备要写入CSV的数据行
        row_data = [click_type, x, 1080-y, click_data, click_time, total_clicks, left_clicks, right_clicks, active_window.title]
        
        # 写入CSV文件
        with open(csv_file_path, mode='a', newline='') as file:
            writer = csv.writer(file)
            writer.writerow(row_data)
        
        # 打印点击信息到控制台(可选)
        print(f'{click_type} click at ({x}, {y}) at {click_data} {click_time} (Total clicks: {total_clicks}, Left clicks: {left_clicks}, Right clicks: {right_clicks})')
# 在程序开始时写入CSV表头(如果文件不存在或为空)
try:
    # 尝试打开文件以检查其是否为空
    with open(csv_file_path, 'r') as file:
        # 如果文件不为空,则不需要写入表头
        first_line = file.readline().strip()
        if first_line:
            # 文件不为空,表头已存在
            pass
        else:
            # 文件为空,写入表头
            write_csv_header(csv_file_path, csv_headers)
except FileNotFoundError:
    # 文件不存在,写入表头
    write_csv_header(csv_file_path, csv_headers)
# 创建一个监听器,绑定鼠标点击事件处理函数
with mouse.Listener(on_click=on_click) as listener:
    print("Start listening for mouse clicks. Press Ctrl+C to stop and save the data to a CSV file.")
    listener.join()  # 这行代码会使程序一直运行,直到你手动停止它(例如,通过 Ctrl+C)

免费评分

参与人数 3吾爱币 +2 热心值 +3 收起 理由
dzzZOne + 1 + 1 谢谢@Thanks!
szmsys + 1 + 1 谢谢,弄个成品给大家下载。
manglang + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
caoyunlong1118 发表于 2024-11-28 08:53
谢谢贡献
3#
samvvv 发表于 2024-11-28 08:55
4#
laugh68 发表于 2024-11-28 09:08
感谢分享,刚好需要用这做一个模拟鼠标点击的脚本
5#
tnancy2kk 发表于 2024-11-28 09:39
谢谢楼主,辛苦了
6#
hudengke 发表于 2024-11-28 10:04
感谢老大无私分享!
7#
ganbey 发表于 2024-11-28 10:18
支持,记录的数据挺齐全的
8#
maqangch 发表于 2024-11-28 10:23
学习了,谢谢分享。
9#
li1610446071 发表于 2024-11-28 11:18
谢谢楼主,已拿走,感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 19:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表