上一篇既使用win32

后来改进2.0版本 加入gui 使用的tkinter

但是每次点击,很不方便,更新后,单纯使用 tkinter ,去除掉win32(其实这个很简单)

win32是支持监视剪贴板的,不过过于复杂,同时还需要窗口句柄是win32建立的,省去麻烦,直接用tkinter,但是tkinter过于简单,仅仅支持剪切板内容获取,清空,设置,等功能.于是需要写循环来不断获取剪切板内容,来检查是否改变.

但是直接不断获取剪切板,就进入了单纯的循环,不能退出,以及cpu一直忙碌.一个目测可行的办法是导入 threading,线程管理.但是,对于按钮和线程,似乎比较复杂.

还好,tkinter.after() 支持挂起,解决这个问题.运行过程中,随时可以退出quit

另外一个全局的变量 running 给循环一个起点

关键tkinter.after()的应用##

#!/usr/bin/python

# -*- coding: utf-8 -*-

#@Author : BigBro

#@DateTime : 2015-11-17 16:57:30

#@Filename : weiyunsc_2.2.py

#@Description : 微云收藏 2.2 自动检测 剪贴板

import tkinter

import urllib.parse

import os

running = False # Global flag

old_text = ' '

def getClipboardText(tk):

# win32clipboard.OpenClipboard()

# result = win32clipboard.GetClipboardData(win32con.CF_TEXT)

# win32clipboard.CloseClipboard()

result = tk.clipboard_get()

return result

def weiyunsc2_0(tk):

#input('复制网址,回车')

url=getClipboardText(tk)

#url=url.decode('utf-8') #transform bytes into str #tk下 获取的内容直接为str,不需要转换

url = str(url)

chrome = 'chrome.exe'

prefix = r'http://sc.qq.com/'

prefix2 =r'mp.weixin.qq.com'

if url.startswith(prefix):

url = url[17:] #strip 'http://sc.qq.com/'

url= urllib.parse.unquote(url)

url_list_str = ''.join([u if u !='&' else '^&' for u in list(url) ]) #cmd 命令行 对&是保留字,需要^来转义

os.system("{0} {1}".format(chrome,url_list_str))

elif url.startswith(prefix2):

os.system("{0} {1}".format(chrome,url))

else:

url=''.join([u if u !='&' else '^&' for u in list(url) ])#如果u !='&'则u就是u,否则,u='^&'

os.system("{0} {1}".format(chrome,url))

def WatchClipboard(tk):#监视剪切板 返回

global old_text

text = getClipboardText(tk)

if running:

if old_text != text:

weiyunsc2_0(tk)

old_text = text

tk.after(500, lambda:WatchClipboard(tk))

def start():

"""Enable scanning by setting the global flag to True."""

global running

running = True

if __name__ == '__main__':

top = tkinter.Tk() #定义一个窗口

top.title('微云收藏2.2') #定义窗口标题

top.geometry('400x200') #定义窗体的大小,是400X200像素

func = tkinter.Button(top,text='开始',command = start)

func.pack(expand = 'yes', fill = 'both')

quit = tkinter.Button(top, text='Quit',

command=top.quit)

quit.pack(expand='yes', fill = 'both')

top.after(500, lambda:WatchClipboard(top))

tkinter.mainloop()

tkinter python 句柄_微云收藏 python tkinter.after相关推荐

  1. 鲲鹏云服务器运行python项目_鲲鹏云实验-Python+Jupyter机器学习基础环境

    [摘要] 介绍Ubuntu 18.04环境下Python3常用科学计算和数据分析包(numpy, scipy, matplotlib, sklearn, pandas)的安装,以及Jupyter No ...

  2. 微云收藏 - js脚本

    将以下代码收藏到收藏夹,即可以随时保存网页到微云收藏http://sc.qq.com javascript:(function(c,b,n,d){b.getElementById("favp ...

  3. 黑马程序员python笔记_#华为云·寻找黑马程序员# 如何实现一个优雅的Python的Json序列化库...

    [小宅按]在Python的世界里,将一个对象以json格式进行序列化或反序列化一直是一个问题.Python标准库里面提供了json序列化的工具,我们可以简单的用json.dumps来将一个对象序列化. ...

  4. 零基础学python 视频_全网最全Python视频教程真正零基础学习Python视频教程 490集...

    Python Web开发-进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程 [课程简介] 这是一门Python Web开发进阶课程,手把手教你用Python开发完整的商业 ...

  5. 3 x 10的python表达式_这道数学题用PYTHON编程语言怎么写? 编程语言python是用

    我觉着,这个应该这样解决比较符合计算机解题思路. 下面的回答的,思考的东西太多. # -*- coding: utf-8 -*- __author__ = 'lpe234' __date__ = '2 ...

  6. 为什么要学python语言_我们为什么要学习Python语言?

    原标题:我们为什么要学习Python语言? 聊到我们为什么要学习Python语言?小编不禁又想起大佬潘石屹准备开启Python学习旅程时所发布的微博. 我们为什么要学习Python语言? 在农业社会时 ...

  7. 疯狂python讲义视频 百度云-疯狂Python讲义 PDF 含源码工具版

    给大家带来的一篇关于Python编程相关的电子书资源,介绍了关于Python编程.Python语法方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小124.3 MB,李刚编写,目前豆瓣.亚 ...

  8. 计算机导论python知识点_如何系统地自学 Python?

    我是自学的Python.从对Python一无所知,到在博客上写Python相关的系列文章(Python快速教程),前后有将近三年的时间.期间有不少门槛,但也充满乐趣.乐趣是自学的最大动力.Python ...

  9. pythoncookbook和流畅的python对比_为什么你学Python效率比别人慢?因为你没有这套完整的学习资料...

    以下资源免费获取方式! 关注!转发!私信"资料"即可免费领取! 入门书籍 1.<Python基础教程>(Beginning Python From Novice to ...

最新文章

  1. LaxTex---问题1: ! I can't write on file `***.pdf'.(Press Enter to retry, or Control-Z to exit; \ldots
  2. vscode 全项目替换_利用vscode插件提升前端国际化开发效率
  3. ACM竞赛学习整理开篇之01背包问题
  4. C++BOOL,int,float,指针类型的变量a 与“零”比较语句
  5. 解决win10cpu使用率100_如何正确理解 CPU 使用率和平均负载的关系?看完你就知道了...
  6. keil用c语言怎么编辑器,用keil软件编写单片机程序的步骤
  7. mat opencv 修改roi_设置图片ROI(OpenCV学习笔记之二)
  8. navicat设计表中添加自增长列
  9. zabbix 监控使用宏自动发现网卡并进行监控
  10. C++ 编写的DLL导出的函数名乱码含义解析
  11. rand()和srand()产生伪随机数zz
  12. linux命令:linux集群系列之一---LVS类型解析
  13. 1.6 分类模型准确性的评估方法
  14. 还原数据库时不能独占访问
  15. 大型分布式电商系统架构技术总结
  16. java word 文档合并_[原创]java合并word文件
  17. java从菜鸟到巨佬的学习目标
  18. 软件测试面试中项目介绍宝典
  19. 金山和微软word脚注和尾注问题
  20. 读书笔记:我们为什么上班

热门文章

  1. python教程:使用生成器重构提取数据方法来优化爬虫代码
  2. 【Python教程】 正则表达式 re模块中,反斜杠 “\“分割字符串的正确操作方法
  3. python常见面试题:m1={‘a‘:1,‘b‘:2,‘c‘:1} 将同样的value的key集合在list里,输出{1:[‘a‘,‘c‘],2:[‘b‘]}
  4. Python基础教程:super()方法详解
  5. Python 的类其实是一个特殊的对象
  6. Python69个内置函数分类总结
  7. python取当前时间前后一定间隔的时间点
  8. hover如何改变子元素或其他同级元素?(用不了怎么回事?)
  9. 公交线路 思维,分支(女赛)
  10. 无忧考吧2017二级java_二级Java模拟软件|无忧考吧二级Java语言程序设计模拟软件下载 v2017.03官方版 - 121下载站...