Python兩種監聽 剪切板 方法


第一種

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

class jianting():
    def clipboard_get(self):
        """獲取剪貼板數據"""
        win32clipboard.OpenClipboard()
        data = win32clipboard.GetClipboardData(win32clipboard.CF_UNICODETEXT)
        win32clipboard.CloseClipboard()
        return data

    def main(self):
        """后台腳本:每隔0.2秒,讀取剪切板文本,檢查有無指定字符或字符串,如果有則執行替換"""
        # 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
                return recent_txt

            # 檢測間隔(延遲0.2秒)
            time.sleep(0.2)

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

速度快,但很容易出錯, 一般人感覺不出來速度。 不建議使用。

 

 

方法二:

import pyperclip
import time

#穩定不出錯
class niubi():
    def lihai(self):
        while True:
            #jianting().main()
            t = jianting().main()
            print(t)
class jianting():
    def clipboard_get(self):
        """獲取剪貼板數據"""
        data = pyperclip.paste()  #主要這里差別
        return data

    def main(self):
        """后台腳本:每隔0.2秒,讀取剪切板文本,檢查有無指定字符或字符串,如果有則執行替換"""
        # 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
                return recent_txt

            # 檢測間隔(延遲0.2秒)
            time.sleep(0.2)

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

 我一般把第二種 用在程序中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM