python两种获取剪贴板内容的方法

举报
泽宇-Li 发表于 2020/11/08 00:02:28 2020/11/08
【摘要】 第一种123456789101112131415161718192021222324252627282930313233343536import win32clipboardimport time#速度快 容易出错class niubi(): def lihai(self): while True: #jianting().main() t = jianting().main() ...

第一种

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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()

速度快,但很容易出错, 一般人感觉不出来速度。 不建议使用。

方法二:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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()

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


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。