栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python处理剪切板只获取文字

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python处理剪切板只获取文字

剪切板处理

#从这个找到的例子win32clipboardDemo.py
import win32clipboard
from win32clipboard import *
import time
import win32con


# 速度快 容易出错
class niubi():
    def lihai(self):
        while True:
            t = jianting().main()
            print(t)


class jianting():
    cf_names = {}
    def __init__(self):
        for name, val in list(win32con.__dict__.items()):
            if name[:3] == "CF_" and name != "CF_SCREENFONTS":  # CF_SCREEN_FONTS==CF_TEXT!?!?
                self.cf_names[val] = name
        #print(self.cf_names)
    def clipboard_get(self):
        """获取剪贴板数据"""
        data = ""
        if IsClipboardFormatAvailable(win32clipboard.CF_UNICODETEXT):
            win32clipboard.OpenClipboard()
            try:
                data = win32clipboard.GetClipboardData(win32clipboard.CF_UNICODETEXT)
            finally:
                win32clipboard.CloseClipboard()
        return data

    def TestClipboardEnum(self):
        OpenClipboard()
        try:
            # Enumerate over the clipboard types
            enum = 0
            while 1:
                enum = EnumClipboardFormats(enum)
                if enum == 0:
                    break
                assert IsClipboardFormatAvailable(
                    enum
                ), "Have format, but clipboard says it is not available!"
                n = self.cf_names.get(enum, "")

                if not n:
                    try:
                        n = GetClipboardFormatName(enum)
                    except error:
                        n = "unknown (%s)" % (enum,)

                print("Have format", n)
            print("Clipboard enumerator tests worked correctly")
        finally:
            CloseClipboard()


    def main(self):
        """后台脚本:每隔0.3秒,读取剪切板文本,检查有无指定字符或字符串,如果有则执行替换"""
        # recent_txt 存放最近一次剪切板文本,初始化值只多执行一次paste函数读取和替换
        recent_txt = self.clipboard_get()
        while True:
            # txt 存放当前剪切板文本
            txt = self.clipboard_get()
            # 剪切板内容和上一次对比如有变动,再进行内容判断,判断后如果发现有指定字符在其中的话,再执行替换
            if txt != recent_txt:
                # print(f'txt:{txt}')
                recent_txt = txt  # 没查到要替换的子串,返回None
                #self.TestClipboardEnum() #枚举剪切板类型
                return recent_txt

            # 检测间隔(延迟0.3秒)
            time.sleep(0.3)
            



if __name__ == '__main__':
    niubi().lihai()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/857979.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号