1. 程式人生 > 程式設計 >Python監聽剪下板實現方法程式碼例項

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()

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。