给一段框出桌面上任意图标的代码练习——实际上是结合win32的python开源库uiautomation获取桌面上任意图标/窗口的坐标后,利用tkinter在图标上建立一个半透明带边框的窗口。
from tkinter import Tk, Canvas
import uiautomation as uia
def draw_rectangle(event):
control = uia.GetRootControl() # 获取桌面窗口的坐标,窗口类型等信息(与本文无关)
rect_info = control.BoundingRectangle
left_x, left_y, right_x, right_y, w, h = rect_info.left, rect_info.top, rect.right, rect_info.bottom # 左上xy右下xy坐标
tk = Tk()
tk.overrideredirect(True)
tk.attributes("-alpha", 0.8)
tk.wm_attributes('-topmost', True)
tk.geometry("{width}x{height}+{left_x}+{left_y}".format(width=right_x - left_x, height=right_y - left_y,
left_x=left_x, left_y=left_y))
cav = Canvas(tk, width=right_x - left_x, height=right_y - left_y,
bd=0, highlightthickness=4, highlightcolor=