python(46) : 延时截图[Windows工具(1)]

Mac本地图像理解工具:零依赖、低延迟的截图描述方案 图像语义理解是计算机视觉的基础能力,其核心原理在于视觉编码器与语言模型的跨模态对齐。在工程实践中,该能力的技术价值不仅体现在准确率,更在于部署确定性——尤其在无公网、低权限、强隐私约束的封闭开发环境中。macOS平台因系统级AI框架(Core ML)和统一内存架构,天然适配轻量级本地图像理解任务;而Mac mini等边缘设备则进一步凸显了离线推理、低延迟响应与热稳定性优化的关键需求。GPT-image2正是围绕这一技术路径展开:基于ONNX Runtime与Core ML双轨推理,实现PNG/JPEG输入到 阅读详情

1.说明

延时选中指定区域截图, 延时秒数为命令行参数: --delay=3 , 单位秒, 默认0秒

2.安装依赖

pip install Pillow>=10.0.0 pywin32>=306 -i https://mirrors.aliyun.com/pypi/simple/ requests

3.代码

"""
屏幕截图工具 - 鼠标选择区域并复制到剪贴板
使用方法:运行脚本,用鼠标拖动选择区域,释放鼠标后自动复制到剪贴板
"""
import tkinter as tk
from PIL import ImageGrab, Image
import io


class ScreenshotTool:
    def __init__(self):
        self.root = tk.Tk()
        self.root.attributes('-fullscreen', True)
        self.root.attributes('-alpha', 0.3)  # 半透明效果
        self.root.configure(bg='grey')
        self.root.attributes('-topmost', True)
        
        self.canvas = tk.Canvas(self.root, cursor="cross", bg='grey')
        self.canvas.pack(fill=tk.BOTH, expand=True)
        
        self.start_x = None
        self.start_y = None
        self.rect = None
        
        # 绑定鼠标事件
        self.canvas.bind("<ButtonPress-1>", self.on_mouse_down)
        self.canvas.bind("<B1-Motion>", self.on_mouse_drag)
        self.canvas.bind("<ButtonRelease-1>", self.on_mouse_up)
        self.canvas.bind("<ButtonPress-3>", self.on_cancel)  # 右键取消
        
        # 绑定键盘事件到 root 窗口(重要!)
        self.root.bind("<Escape>", self.on_cancel)
        self.root.bind("<Key-Escape>", self.on_cancel)
        
        # 确保窗口获得焦点
        self.root.focus_force()
        
        # 显示提示信息
        self.canvas.create_text(
            self.root.winfo_screenwidth() // 2,
            50,
            text="拖动鼠标选择区域 | 按ESC或右键取消",
            fill="white",
            font=("Arial", 16, "bold")
        )
    
    def on_cancel(self, event=None):
        """取消截图"""
        print("已取消截图")
        self.root.destroy()
        
    def on_mouse_down(self, event):
        """鼠标按下"""
        self.start_x = event.x
        self.start_y = event.y
        
        # 删除之前的矩形
        if self.rect:
            self.canvas.delete(self.rect)
            
    def on_mouse_drag(self, event):
        """鼠标拖动"""
        if self.rect:
            self.canvas.delete(self.rect)
            
        # 绘制选择矩形
        self.rect = self.canvas.create_rectangle(
            self.start_x, self.start_y, event.x, event.y,
            outline='cyan', width=3
        )
        
    def on_mouse_up(self, event):
        """鼠标释放 - 截图并复制到剪贴板"""
        end_x = event.x
        end_y = event.y
        
        # 确保坐标正确(左上到右下)
        x1 = min(self.start_x, end_x)
        y1 = min(self.start_y, end_y)
        x2 = max(self.start_x, end_x)
        y2 = max(self.start_y, end_y)
        
        # 关闭选择窗口
        self.root.destroy()
        
        # 等待窗口完全关闭
        self.root.update()
        
        # 截取屏幕区域
        if x2 - x1 > 0 and y2 - y1 > 0:
            screenshot = ImageGrab.grab(bbox=(x1, y1, x2, y2))
            
            # 复制到剪贴板
            self.copy_to_clipboard(screenshot)
            print(f"截图成功!区域: ({x1}, {y1}) -> ({x2}, {y2})")
            print("图片已复制到剪贴板")
        else:
            print("选择区域太小,已取消")
            
    def copy_to_clipboard(self, image):
        """将图片复制到剪贴板 (Windows)"""
        try:
            # Windows 剪贴板方法
            import win32clipboard
            from io import BytesIO
            
            output = BytesIO()
            image.convert('RGB').save(output, 'BMP')
            data = output.getvalue()[14:]  # BMP文件头是14字节,剪贴板不需要
            output.close()
            
            win32clipboard.OpenClipboard()
            win32clipboard.EmptyClipboard()
            win32clipboard.SetClipboardData(win32clipboard.CF_DIB, data)
            win32clipboard.CloseClipboard()
        except ImportError:
            # 如果没有 win32clipboard,尝试使用 PIL 的方法
            try:
                # 保存到临时文件然后使用系统命令
                import tempfile
                import os
                
                temp_path = os.path.join(tempfile.gettempdir(), 'screenshot_temp.png')
                image.save(temp_path)
                
                # 使用 tkinter 的剪贴板(仅支持文本,所以这个方法有限制)
                # 更好的方法是安装 pyperclip 或 win32clipboard
                print("警告:需要安装 pywin32 库以支持图片复制")
                print("请运行: pip install pywin32")
                print(f"截图已保存到: {temp_path}")
            except Exception as e:
                print(f"复制到剪贴板失败: {e}")
                
    def run(self):
        """运行工具"""
        self.root.mainloop()


if __name__ == "__main__":
    import argparse
    import time

    parser = argparse.ArgumentParser(description="截图工具")
    parser.add_argument(
        "--delay", "-d", type=int, default=0,
        help="延迟秒数,延时后开始截图(默认0秒)"
    )
    args = parser.parse_args()

    print("启动截图工具...")
    print("使用说明:")
    print("1. 用鼠标拖动选择要截取的区域")
    print("2. 释放鼠标后,截图将自动复制到剪贴板")
    print("3. 按 ESC 键或鼠标右键取消")
    print("-" * 50)
    if args.delay > 0:
        print(f"将在 {args.delay} 秒后启动截图...")
        time.sleep(args.delay)

    app = ScreenshotTool()
    app.run()

python调用op插件源码支持64位 pyopdll是开源项目的Python接口, 内部封装了op_x64.dll和op_x86.dll,支持32位和64位Python3。 阅读详情

相关推荐

Windows系统漏洞挖掘:信息收集分层模型与实战工具链详解

在网络安全领域,信息收集是渗透测试与漏洞挖掘的基石,其本质是通过系统化方法获取目标资产情报的技术过程。其核心原理在于遵循由外至内、由静至动的分层侦查模型,从公开源情报(OSINT)到主动探测,逐步构建目标立体画像。这一过程的技术价值在于,它能将模糊的攻击面转化为具体的、可操作的漏洞入口,显著提升后续漏洞利用的精准度与成功率。在应用场景上,无论是企业外部安全评估、红队演练还是内部横向移动,高效的信息收集工作流都是决定行动成败的关键。本文聚焦Windows环境,深入解析外围侦查、主动探测、漏洞关联及内网信息收集

babing2770的博客 488

Windows下python获取剪切板的内容

Windows下python获取剪切板的内容

xiemanR的专栏 1万+

Windows一键部署本地AI智能体:OpenClaw图形化安装指南

AI智能体是让大语言模型具备任务规划、工具调用与自主执行能力的运行时框架,其核心原理在于将复杂工作流拆解为可调度的技能节点,并通过本地推理引擎闭环处理数据。相比依赖云端API或Docker容器的方案,本地AI智能体具备隐私可控、低延迟、离线可用的技术价值,特别适用于政务、金融、中小企业等对数据不出域有强要求的场景。当前主流落地难点集中在Windows环境下的Python依赖冲突、CUDA驱动兼容性及GUI用户友好性缺失。本文聚焦‘Windows原生+零命令行+图形化引导’这一关键路径,详解如何通过预置运行时

weixin_30920513的博客 445

截屏当前窗口,并把截到的图复制到剪贴板中

/*   * hwnd:要截图的窗口的句柄   * fileName:要比较的图片的路径   * offsets:有4个成员的int型数组,用于设置比较图片时,上、下、左、右的偏移量   * offsets[0]:左   * offsets[1]:上   * offsets[2]:右   * offsets[3]:下   */   bool print_screen(HWND h

smellmine的专栏 4675

YOLOv8 Windows部署避坑指南:环境隔离、CUDA绑定与路径规范

YOLOv8作为主流目标检测框架,其Windows部署常因环境冲突、CUDA版本错配和路径解析异常而失败。核心原理在于PyTorch预编译wheel对CUDA运行时的硬编码依赖,以及Windows系统级PATH、注册表和杀毒软件对Python包安装的隐式干扰。技术价值体现在构建可复现、可回溯的洁净执行上下文——通过官方MSI安装Python、严格隔离venv、禁用Defender实时扫描、强制指定cu118镜像源,并统一使用绝对路径调用CLI。典型应用场景包括工业质检图像推理、边缘设备模型部署及高校实验环境

clhq71932的博客 337

Windows本地Jenkins实现MLOps全链路自动化

MLOps(机器学习运维)是将模型开发、训练、评估与部署纳入工程化CI/CD流程的关键实践。其核心原理在于通过可复现的环境、版本可控的流水线和自动化的质量门禁,保障模型从实验到生产的一致性与可靠性。技术价值体现在降低人工干预风险、加速迭代周期、提升跨团队协作效率。典型应用场景包括中小团队在无K8s/Docker基础设施条件下,基于现有Windows开发机快速构建端到端模型交付能力。本文聚焦Windows本地Jenkins部署与Pipeline即代码实践,覆盖OpenJDK配置、Agent权限驯服、Pytho

weixin_34279184的博客 582

Python 截图并复制到剪贴板

除了打开比较慢,要到文件夹中打开,这些不太方便外,还是挺好用的。 import time import PyQt5 from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * class Widget(QWidget): def __init__(self,parent=None)...

qianshishangdi的博客 4183

使用python 将图片复制到系统剪贴中

今天小编就为大家分享一篇使用python 将图片复制到系统剪贴中,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

python grep_Python模拟Linux/Mac OS工具grep和Windows工具findstr

原标题:Python模拟Linux/Mac OS工具grep和Windows工具findstr在Linux和Mac OS系统中有个工具grep可以用来查找哪些文件中包含特定的字符串,Windows系统中也有类似的工具findstr,本文代码模拟了这两个工具的工作原理。fromos importlistdirfromsys importargvdefprepare(fileNames):forite...

weixin_39606911的博客 332

Unity IAP插件实战:从零搭建Google Play内购系统

本文详细介绍了如何使用Unity IAP插件从零搭建Google Play内购系统,涵盖环境准备、双端配置、核心API实现及常见问题排查。通过实战代码示例,帮助开发者快速掌握跨平台内购功能开发,提升手游商业化效率。

weixin_28692867的博客 430

人形机器人系列——硬件介绍

人形机器人是多领域交叉技术的产物,主要由三大系统组成:感知系统、决策系统和执行系统。感知系统感知系统是人形机器人获取外界信息的途径,主要由各种传感器组成。其中,视觉传感器用于获取图像信息,如摄像头、激光雷达等;触觉传感器用于感知触碰和压力,如力/力矩传感器、声学传感器等。这些传感器收集到的信息为机器人的决策和执行提供基础。决策系统决策系统是人形机器人的大脑,负责处理和决策各种信息。它由芯片和算法组成。芯片是硬件基础,提供计算能力;算法是软件基础,用于处理和分析传感器收集到的信息,并做出相应的决策。执行系统。

liangwqi的博客 1万+

1.2 Python中Windows命令行的使用

python中Windows命令行的使用 导入Windows系统命令包: import os 使用导入的Windows包: os.system("calc") 如果使用其他Windows命令,将双引号中calc替换即可 一些常用的Windows命令 1.calc:启动计算器   2.appwiz.cpl:程序和功能   3.certmgr.msc:证书管理实用程序   4.charmap:启动...

choudidi_的博客 1475

vTaskStartScheduler()详解

是启动 FreeRTOS 实时内核的“扳机”。在调用它之前,你只是创建了一些任务结构,但它们都处于“待命”状态,系统仍然在按传统的裸机前后台方式运行。调用这个函数后,FreeRTOS 内核会接管系统的控制权,开始根据优先级调度你创建的任务,多任务环境才真正开始。关键点:它没有参数。它的所有行为都由中的配置宏控制。它通常不会返回。一旦调用,除非没有任务可以运行(或者你显式地停止了调度器),否则程序流永远不会回到main()函数中调用它的下一行。是一个没有参数但行为由精密控制的函数。

Shylock_Mister的博客 1594

从视频剪辑到开发工具:FFmpeg在Windows上的5个高效应用场景与入门命令

本文详细介绍了FFmpeg在Windows平台上的5个高效应用场景,包括视频格式转换、音频提取、视频合并、视频截图和媒体信息分析,并提供了实用的入门命令示例。无论是内容创作者还是开发者,都能通过这些技巧快速掌握FFmpeg的强大功能,提升多媒体处理效率。

weixin_33670786的博客 221

二相混合式步进电机闭环矢量控制simulink仿真(含仿真文件)

在位置跟踪伺服系统中二相混合式步进电机闭环矢量控制simulink仿真

qq_39023633的博客 2万+

异步fifo的UVM验证(最终最终版)

更新了refmdl以及scb

qq_44674008的博客 2988

TurboOCR:基于PP-OCRv6的极速Windows离线OCR工具,深度解析3.4GB依赖背后的技术架构

TurboOCR 解决了 Windows 平台上"开箱即用的离线 OCR"这一需求空白。它不依赖 Python 运行时,不需要联网,不需要安装任何额外组件——下载、解压、双击,三步完成。项目 3.4GB 的体积看似庞大,但经过拆解可以发现,其中 85% 来自 Paddle Inference 的通用推理引擎——这正是支持 PP-OCRv6 全系列模型、CPU/GPU 双后端、高精度文字识别能力的代价。通过 GitHub Releases 分发预编译包,源码仓库保持轻量(仅 ~1MB),用户按需下载。

qq_29676069的博客 589

python全栈入门到实战【基础篇 03】入门实操:第一个Python程序 + PyCharm使用 + 输入输出全解析

本文是一篇Python入门教程,主要介绍PyCharm编辑器的安装配置和基础使用,以及Python输入输出语法的实操练习。文章分为四个部分:1)PyCharm的下载安装与基础配置;2)第一个Python程序"Hello World"的编写与运行;3)Python输入输出函数print()和input()的详细讲解;4)个人信息录入系统的实战案例。教程包含大量截图和动图演示,适合Python新手跟随操作,快速掌握编辑器使用和基础语法。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 4027

女友晚安之后依然在线:python男友用20行代码写了个小工具

女朋友晚安之后,却依然在线。。。

信息安全领域优质创作者|操作系统领域专家 43万+

tar解压报错 gzip: stdin: unexpected end of file tar: Unexpected EOF in archive

错误现象: [root@centos7-xinsz08 ~]# tar xf prometheus-2.7.2.linux-amd64.tar.gz gzip: stdin: unexpected end of file tar: 归档文件中异常的 EOF tar: 归档文件中异常的 EOF tar: Error is not recoverable: exiting now 错误原因排查 ...

互联网老辛 2万+

【GlobalMapper精品教程】006:Excel表格(.xls)或文本(.txt .csv)坐标文件生成矢量点

原始的坐标数据如下图所示,其中坐标为Lat经度,LNG纬度,均为十进制度的形式,一般软件都支持十进制度的格式,如果不支持,你可以尝试使用度分秒的形式,图中的DDMMSS-LAT为纬度,DDMMSS-LNG为经度。打开globalmapper软件,点击【打开数据文件】,选择坐标数据文件(案例中的数据位配套实验数据包中的data006.rar)气象台站分布点坐标.xls。选择坐标系:本案例数据采用的是经纬度,因此选择Geographic(Latitude/Longitude),基准选择WGS84,点击确定。

智慧空间实验室 2570

Mem Reduct:基于Native API的Windows内存精准回收工具

内存管理是操作系统核心机制之一,其本质是物理页的分配、跟踪与回收。传统方案依赖用户态API(如PowerShell或WMI),响应延迟高、精度粗、易受系统策略干扰;而Native API(如NtQuerySystemInformation、NtFreeVirtualMemory)可绕过高层抽象,直接与内核交互,实现毫秒级、单页级的内存状态感知与无损回收。这种底层控制能力赋予了工具真正的‘内存审计’价值——不清理活跃数据,只唤醒沉睡资源。典型应用场景包括多任务卡顿优化、低配设备效能提升、开发/运维环境内存稳定

weixin_34315485的博客 398

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Python 潮流周刊#88:Python 第一个稳定版本是怎样的?(摘要)

本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。周刊实行付费订阅制,年费 128 元,平均每天不到 4 毛钱,但绝对是一笔有眼光的投资。⑩ leviathan:用 Zig 开发的用于 asyncio 的事件循环。① open-r1:DeepSeek-R1 的完全开源复现。② YuE:开源的全曲音乐生成模型,类似于 Suno.ai。

Python猫 376

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

OpenClaw 2.6.4:Windows本地AI智能体一键部署实战指南

AI智能体是面向任务自动化的下一代人机协作范式,其核心在于将大语言模型(LLM)与工具调用(Tool Calling)、工作流编排(Workflow Orchestration)深度集成,实现对本地文件、办公软件和系统API的自主操作。相比云端服务,本地化部署保障数据主权、离线鲁棒性与低延迟响应,尤其适合行政、财务、运营等高频重复文档处理场景。OpenClaw 2.6.4正是这一理念的工程化落地——它放弃Docker与WSL,采用Rust+Python+Tauri技术栈,封装为无依赖Windows原生服务,

weixin_30654419的博客 557

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

DeepSeek-OCR Client部署完全手册:Windows/Linux/macOS跨平台安装配置终极指南

想要快速部署DeepSeek-OCR Client进行实时OCR文字识别吗?这款基于Electron的桌面GUI应用支持Windows、Linux和macOS三大平台,提供了拖拽上传、实时处理、GPU加速等强大功能。本指南将详细介绍如何从零开始完成DeepSeek-OCR Client的完整安装配置过程,让你在10分钟内就能开始使用这款强大的OCR工具!🚀 ## 📋 系统要求与准备工作 在

gitblog_01098的博客 655

python gui设计_[原创]使用VB设计Python的GUI界面(Tkinter Designer) 附源码,[更新V1.5.1]...

[原创]使用VB设计Python的GUI界面(Tkinter Designer) 附源码,[更新V1.5.1]2018-09-16本帖最后由 cdhigh 于 2015-11-21 06:24 编辑[2015-11-20]更新到1.5.1,https://github.com/cdhigh/tkinter-designer[2013-03-21]更新一个小小升级,v1.4.6,主要是可以在VB中拖...

weixin_39740419的博客 1014
上一篇: python(45) : docker构建支持消费rocketmq的客户端
下一篇: ESP32-S3(1) : 学习路线
楽焫旒璡
博客等级 码龄10年 357粉丝 365原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值