利用python+win32api获取标题对应的窗口句柄id,并且操作为当前活动窗口

2021/6/15 20:36:58

本文主要是介绍利用python+win32api获取标题对应的窗口句柄id,并且操作为当前活动窗口,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

# #!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time : 2021-06-15 18:08
# @Author : BruceLong
# @FileName: switch_win.py
# @Email   : 18656170559@163.com
# @Software: PyCharm
# @Blog :http://www.cnblogs.com/yunlongaimeng/
import ctypes
import win32gui

import win32con


def get_jb_id(title):
    '''
    根据标题找句柄
    :param title: 标题
    :return:返回句柄所对应的ID
    '''
    jh = []
    hwnd_title = dict()

    def get_all_hwnd(hwnd, mouse):
        if win32gui.IsWindow(hwnd) and win32gui.IsWindowEnabled(hwnd) and win32gui.IsWindowVisible(hwnd):
            hwnd_title.update({hwnd: win32gui.GetWindowText(hwnd)})

    win32gui.EnumWindows(get_all_hwnd, 0)
    for h, t in hwnd_title.items():
        if t is not "":
            if title in t:
                jh.append(h)

    if len(jh) == 0:
        print("找不到相应的句柄")
    else:
        return jh


def switch_roles(hwnd):
    '''
    根据句柄id切换活动窗口
    :param hwnd: 
    :return: 
    '''
    try:
        ctypes.windll.user32.SwitchToThisWindow(hwnd, True)
        win32gui.ShowWindow(hwnd, win32con.SW_SHOWNORMAL)
        win32gui.SetForegroundWindow(hwnd)
        msg = [True, 'exec success', None]
    except Exception as e:
        msg = [False, '没有找到可操作的对象', str(e)]
    return msg


jb_id_list = get_jb_id("Studio 3T for MongoDB - TRIAL LICENSE")
jb_id = jb_id_list[0] if jb_id_list else jb_id_list
print(switch_roles(jb_id))

 



这篇关于利用python+win32api获取标题对应的窗口句柄id,并且操作为当前活动窗口的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程