pyQT指定窗口截图
来源:互联网 发布:吸血鬼日记 知乎 编辑:程序博客网 时间:2024/05/21 22:41
http://blog.csdn.net/pipisorry/article/details/46559139
问题:
如果要搜索的外部程序的窗口标题比较容易得到[],问题是比较简单的。如果窗口的标题不固定或者根本就没有标题,怎么得到窗口的类呢?
Introduction
Spy++是微软出品的用来获取Window窗口信息的一个小工具。Spy++中,最常用的一个功能,就是识别窗口。获取当前鼠标位置; 获取位于指定位置的窗口句柄; 获取窗口类别; 获取窗口内容或标题。
Spy++ (SPYXX.EXE) 提供系统的进程、线程、窗口和窗口消息的图形视图。
使用 Spy++ 可以执行下列操作: 显示系统对象(包括进程、线程和窗口)之间关系的图形树。 搜索指定的窗口、线程、进程或消息。 查看选定的窗口、线程、进程或消息的属性。 直接从视图中选择窗口、线程、进程或消息。 通过鼠标定位,使用查找程序工具选择窗口。 使用复杂的消息日志选择参数设置消息选项。 提示使用 Spy++ 时,在许多实例中都可以单击鼠标右键显示常用命令的弹出式菜单。命令是否可用取决于指针的位置。例如,如果在指向窗口视图中的某项时单击并且选定的窗口可见,则弹出式“突出显示”菜单项将导致选定窗口的边框闪烁,从而可以轻松地在屏幕上找到该窗口。
spy++获取子窗口的句柄
spy++这个软件来自VC++,装好VC后,就可以在工具中看到。(没安装的也可以在网上下载得到spy++.exe)
spy++的使用:
启动SPY++ > spy++的查找功能(菜单栏上望远镜图标)
拖动耙心(黑色标记处)到这篇博客就可以看到以上内容
handle就是16进制的窗口句柄
caption就是窗口名lpWindowName
class就是窗口类名lpClassName
Note:点击“确定”,可以看到了SPY++显示窗口中的其它子内容。
[Spy++的使用方法]
python中获取子窗口的句柄
使用PyWin32库,它是对windows接口的Python封装,VC能做的它基本都行。
下载地址:http://sourceforge.net/projects/pywin32/,但不能直接点Download图标,不然下下来是一个Readme.txt,点“Browse All Files”寻找需要的版本(如amd64位对应win64)。
import win32guifrom PIL import ImageGrabimport win32confrom Utility.Colors import DEFAULT, REDhwnd = win32gui.FindWindow("MozillaWindowClass", "Spy++获取子窗口的句柄 - 皮皮Blog - 博客频道 - CSDN.NET - Mozilla Firefox")if not hwnd: print(RED, 'window not found!', DEFAULT)else: print(hwnd)win32gui.ShowWindow(hwnd, win32con.SW_RESTORE) # 强行显示界面后才好截图win32gui.SetForegroundWindow(hwnd) # 将窗口提到最前# 裁剪得到全图game_rect = win32gui.GetWindowRect(hwnd)src_image = ImageGrab.grab(game_rect)# src_image = ImageGrab.grab((game_rect[0] + 9, game_rect[1] + 190, game_rect[2] - 9, game_rect[1] + 190 + 450))src_image.show()Note:得到Image图像后可用show()方法,使用系统默认的图像查看工具打开,方便调试,也可以用save(filename)保存成文件,对应的可以Image.open(filename)打开获得。from:http://blog.csdn.net/pipisorry/article/details/46559139
ref:用Python实现Spy++
获取下一个窗口句柄
Python使用win32api系统钩子
- pyQT指定窗口截图
- 窗口截图(可指定HWND窗口句柄)
- 窗口截图(可指定HWND窗口句柄)
- 窗口截图(可指定HWND窗口句柄)
- 窗口截图(可指定HWND窗口句柄)
- PyQt实现桌面截图
- C# 非顶端窗口截图 - 用于查找指定窗口并截图
- Pyqt 浏览器截图小demo
- C# 截取当前程序窗口指定位置的截图?
- C# 截取当前程序窗口指定位置的截图
- pyqt的登录窗口
- PyQT之多窗口切换
- pyqt的登录窗口
- 窗口截图
- 窗口截图
- C#实现带指定文本水印的截图(指定窗口与 全屏)
- Unity3d截图 指定相机截图
- PyQt窗口最小化到托盘
- 数据库 ' 库名' 已打开,并且一次只能有一个用户访问
- 数值积分方法
- SylixOS ARM BSP 文件结构
- 红绿黄染色,红绿个数为偶数
- DOM4J解析XML实例
- pyQT指定窗口截图
- std::set作为一个有序集合
- easyui datagrid 避免二次加载
- Windows server2012 桌面设置
- SylixOS ARM BSP 文件结构
- 【Unity】Shader编程 基础总结
- ORACLE定期清理INACTIVE会话
- 共享微信JSSDK的access_token.json
- Windows 7 默认情况下没有 tftp 和 telnet 命令.