第一種
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()
我一般把第二種 用在程序中。