屏幕窗口切换器

3次阅读
没有评论

在生活中有好多朋友都有两块屏幕 但是这个时候就会有很多的问题产生 有的软件直接就是全屏无法选择 使用哪一块屏幕进行切换
这个时候我就很苦恼 所以这个时候就有一个软件出来了 名为屏幕窗口切换器 先上图

[Python] 纯文本查看 复制代码

import time
import tkinter as tk
from tkinter import ttk, messagebox
import win32gui
import win32con
from pynput.keyboard import Key, Controller
import threading
keyboard = Controller()
def get_window_titles():
"""返回所有可见窗口标题的列表"""
titles = []
def foreach_window(hwnd, lParam):
if win32gui.IsWindowVisible(hwnd):
length = win32gui.GetWindowTextLength(hwnd)
if length > 0:
window_title = win32gui.GetWindowText(hwnd)
titles.append(window_title)
return True
win32gui.EnumWindows(foreach_window, 0)
return titles
def switch_screen(window_title):
try:
# 激活指定标题的窗口
def callback(hwnd, window_title):
if win32gui.GetWindowText(hwnd) == window_title:
win32gui.ShowWindow(hwnd, win32con.SW_RESTORE)
win32gui.SetForegroundWindow(hwnd)
win32gui.EnumWindows(callback, window_title)
# 确保窗口激活后再发送快捷键
time.sleep(0.5)

with keyboard.pressed(Key.cmd):
with keyboard.pressed(Key.shift):
keyboard.press(Key.left)
keyboard.release(Key.left)
messagebox.showinfo("操作成功", f"已尝试切换窗口: {window_title}")
except Exception as e:
messagebox.showerror("错误", f"发生错误: {str(e)}")
def on_select(event):
"""处理下拉菜单选项的选择"""
selected_window = combo_var.get()
if selected_window:

threading.Thread(target=switch_screen, args=(selected_window,)).start()
# 创建主窗口
root = tk.Tk()
root.title("窗口切换工具")
root.geometry("300x100")
# 获取所有窗口标题并初始化下拉菜单变量
window_titles = get_window_titles()
combo_var = tk.StringVar(value=window_titles[0] if window_titles else '')
# 创建并放置下拉菜单
combo = ttk.Combobox(root, textvariable=combo_var, values=window_titles)
combo.bind('<<ComboboxSelected>>', on_select)
combo.pack(pady=20)
# 如果没有找到任何窗口,禁用下拉菜单
if not window_titles:
combo.config(state='disabled')
# 运行主循环
root.mainloop()

在使用过程中 ,你只需要点击对应的应用程序就可以进行两个屏幕直接的相互切换

同时我这里放出他的源代码 方便大家研究

同时我也放出成品 下载:https://wwxe.lanzoub.com/idPbS2py030f 密码:cxbm

正文完
 0
116博客
版权声明:本篇文章由 116博客 于2025-03-09发表,共计1739字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码