【经验分享】如何通过窗口句柄 实现操作窗口
评论
收藏

【经验分享】如何通过窗口句柄 实现操作窗口

经验分享
小可耐教你学影刀RPA【哔哩哔哩同名】
2023-12-29 10:34·浏览量:1084
小可耐教你学影刀RPA【哔哩哔哩同名】
影刀高级开发者
发布于 2023-12-29 10:341084浏览


前言

看到如下提问 产生了这个文章

使用教程

软件每次运行的时候句柄是变化的 我们可以逆向思维 通过窗口不变化的属性在来获取到用户的句柄

📎MicrosoftSpy_jb51.zip

利用软件获取窗口样式 和扩展样式   可以在百度搜索下载这个软件

利用句柄隐藏

import win32gui
import win32con

句柄 = []

def enum_windows_callback(hwnd, window_list):
    window_style = win32gui.GetWindowLong(hwnd, win32con.GWL_STYLE)
    extended_style = win32gui.GetWindowLong(hwnd, win32con.GWL_EXSTYLE)

    if window_style == 369623040 and extended_style == 524296:
        window_list.append(hwnd)

def find_windows_by_style():
    window_list = []
    win32gui.EnumWindows(enum_windows_callback, window_list)
    return window_list

def hide_window(hwnd):
    win32gui.ShowWindow(hwnd, win32con.SW_HIDE)

def show_hidden_windows():
    for hwnd in 句柄:
        show_window(hwnd)

matching_windows = find_windows_by_style()
for hwnd in matching_windows:
    hide_window(hwnd)
    # 将窗口句柄存储到列表中
    句柄.append(hwnd)



这段代码的功能是查找具有特定样式的窗口,并将其隐藏。首先,它定义了一个名为enum_windows_callback的回调函数,该函数用于检查窗口是否具有特定的样式。然后,它定义了一个名为find_windows_by_style的函数,该函数使用win32gui.EnumWindows函数遍历所有窗口,并将具有特定样式的窗口句柄添加到window_list列表中。接下来,它定义了一个名为hide_window的函数,该函数用于隐藏给定窗口句柄的窗口。最后,它定义了一个名为show_hidden_windows的函数,该函数遍历句柄列表中的所有窗口句柄,并使用show_window函数显示它们。

在主程序中,它首先调用find_windows_by_style函数来查找具有特定样式的窗口,并将它们的句柄存储在matching_windows列表中。然后,它遍历matching_windows列表中的所有窗口句柄,并使用hide_window函数将它们隐藏。最后,它将隐藏的窗口句柄添加到句柄列表中。



显示对话框

import win32gui
import win32con

def show_hidden_windows(句柄):
    def show_window(hwnd):
        win32gui.ShowWindow(hwnd, win32con.SW_SHOW)

    for hwnd in 句柄:
        show_window(hwnd)
        
show_hidden_windows(句柄)

原文章https://www.yuque.com/pengzhiqiang999/xiaokenai/yx68cw95o5g1bitn?singleDoc# 《句柄 如何全部隐藏影刀运行提示框》

收藏3
全部评论1
最新
发布评论
评论