Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python win32gui

作者:狂神战天   发布日期:2026-01-09   浏览:13

import win32gui

# 获取所有窗口的句柄
def get_all_windows():
    hwnd_title = {}
    def callback(hwnd, extra):
        if win32gui.IsWindow(hwnd) and win32gui.IsWindowEnabled(hwnd) and win32gui.IsWindowVisible(hwnd):
            title = win32gui.GetWindowText(hwnd)
            if title:
                hwnd_title[hwnd] = title
    win32gui.EnumWindows(callback, None)
    return hwnd_title

# 打印所有窗口的标题和句柄
windows = get_all_windows()
for hwnd, title in windows.items():
    print(f"Window Handle: {hwnd}, Title: {title}")

# 根据窗口标题获取窗口句柄
def get_window_handle_by_title(title):
    return win32gui.FindWindow(None, title)

# 示例:获取记事本窗口的句柄(假设记事本已打开)
notepad_handle = get_window_handle_by_title("无标题 - 记事本")
if notepad_handle:
    print(f"Notepad window handle: {notepad_handle}")
else:
    print("Notepad window not found")

# 将窗口置顶
def bring_window_to_top(hwnd):
    win32gui.SetForegroundWindow(hwnd)

# 示例:将记事本窗口置顶(假设记事本已打开)
if notepad_handle:
    bring_window_to_top(notepad_handle)

解释说明:

  1. 获取所有窗口的句柄

    • get_all_windows 函数通过 win32gui.EnumWindows 遍历所有窗口,并使用回调函数 callback 获取每个窗口的句柄和标题。只有那些可见、启用且有效的窗口才会被记录。
  2. 打印所有窗口的标题和句柄

    • 使用 get_all_windows 函数获取所有窗口的信息,并打印出来。
  3. 根据窗口标题获取窗口句柄

    • get_window_handle_by_title 函数通过 win32gui.FindWindow 根据窗口标题查找对应的句柄。如果找到,则返回句柄;否则返回 0。
  4. 将窗口置顶

    • bring_window_to_top 函数通过 win32gui.SetForegroundWindow 将指定窗口置于最前端。
  5. 示例代码

    • 假设记事本已经打开,代码会尝试获取记事本窗口的句柄,并将其置顶。如果找不到记事本窗口,则会输出相应的提示信息。

上一篇:python每秒并发2000个请求

下一篇:python脚本打包成exe文件

大家都在看

python时间格式

pythoneval函数用法

python读取文件路径

staticmethod在python中有

python 保存json文件

python开发windows应用程序

python中len是什么意思

python ord和chr

python中的yield

python自定义异常

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站