- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章python基于win32实现窗口截图由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文实例为大家分享了python基于win32实现窗口截图的具体代码,供大家参考,具体内容如下 。
获取窗口句柄和标题 。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import
win32gui
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
wnd
in
hwnd_title.items():
print
(wnd)
|
运行结果如下,格式为:(窗口句柄, 窗口标题) 可自行根据标题筛选想要的窗口 。
1
2
3
4
5
6
|
(65772,
''
)
(262798,
'pythonProject – screenShot.py'
)
(5114244,
'项目里程碑.ppt[兼容模式] - PowerPoint'
)
(3803304,
''
)
(133646,
''
)
(133642,
''
)
|
根据窗口句柄截图 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
import
win32com.client
import
win32gui
import
win32api
import
win32con
import
win32ui
from
PIL
import
Image
def
setForeground(hwnd):
"""
将窗口设置为最前面
:param hwnd: 窗口句柄 一个整数
"""
if
hwnd !
=
win32gui.GetForegroundWindow():
shell
=
win32com.client.Dispatch(
"WScript.Shell"
)
shell.SendKeys(
'%'
)
win32gui.SetForegroundWindow(hwnd)
def
winShot(hwnd):
"""
根据窗口句柄截取窗口视图
:param hwnd: 窗口句柄 一个整数
"""
bmpFileName
=
'screenshot.bmp'
jpgFileName
=
'screenshot.jpg'
r
=
win32gui.GetWindowRect(hwnd)
hwin
=
win32gui.GetDesktopWindow()
# 图片最左边距离主屏左上角的水平距离
left
=
win32api.GetSystemMetrics(win32con.SM_XVIRTUALSCREEN)
# 图片最上边距离主屏左上角的垂直距离
top
=
win32api.GetSystemMetrics(win32con.SM_YVIRTUALSCREEN)
hwindc
=
win32gui.GetWindowDC(hwin)
srcdc
=
win32ui.CreateDCFromHandle(hwindc)
memdc
=
srcdc.CreateCompatibleDC()
bmp
=
win32ui.CreateBitmap()
bmp.CreateCompatibleBitmap(srcdc, r[
2
]
-
r[
0
], r[
3
]
-
r[
1
])
memdc.SelectObject(bmp)
memdc.BitBlt((
-
r[
0
], top
-
r[
1
]), (r[
2
], r[
3
]
-
top), srcdc, (left, top), win32con.SRCCOPY)
bmp.SaveBitmapFile(memdc, bmpFileName)
im
=
Image.
open
(bmpFileName)
im
=
im.convert(
'RGB'
)
im.save(jpgFileName)
if
__name__
=
=
'__main__'
:
setForeground(
5114244
)
winShot(
5114244
)
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://blog.csdn.net/BDawn/article/details/112031941 。
最后此篇关于python基于win32实现窗口截图的文章就讲到这里了,如果你想了解更多关于python基于win32实现窗口截图的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
如何创建 iPhone 屏幕截图?当我打开 Xcode 时,我转到“窗口”>“管理器”,但没有可见的“设备”选项卡。我有一部操作系统为 3.1.2 的越狱手机。 最佳答案 在手机上,按住主页按钮并按
我一直在使用 UIGetScreenImage() 来获取 UIImagePickerController 的屏幕截图。基本上我使用相机覆盖层,然后当我拍摄屏幕截图时,我会看到相机预览显示的图像以及我
我想对我创建的面板进行屏幕截图,代码如下。任何人都可以告诉我为什么我没有得到。谢谢 public static final void makeScreenshot(JFrame argFram
我正在开发一个应用程序,它使用前置摄像头为使用该应用程序的人模拟一面镜子。我已经实现了一个“平视显示器”,它位于相机 View 的前面并显示一些东西。目前这很好用。现在我想实现一种每 5 秒截取一次屏
如何使用安卓模拟器截屏? 最佳答案 在 Eclipse 中打开 Devices View (Window -> Show View -> Other, Android -> Devices),右侧有一
我正在开发一个用于在设备中截取屏幕截图的应用程序。在这个应用程序中,我们可以在屏幕上绘制任何东西。为此,我使用 Canvas、Paint 和 Path 来执行此操作。 我正在使用此代码截取屏幕截图:
如何捕获屏幕并将其保存为 C 中的图像? 操作系统:Windows(XP 和 7) 谢谢 最佳答案 你试过了吗google ?这forum entry有一个示例,包含使用 Win32 API 的 C
我正在尝试使用这段代码: bool SaveBMPFile(char *filename, HBITMAP bitmap, HDC bitmapDC, int width, int height);
我想使用 php 创建网站缩略图(屏幕截图)。我有一个运行 centos 5.5 的专用服务器,所以我可以在上面安装软件。 我需要一个免费的解决方案来在生产服务器上创建网站的缩略图,而无需运行 X 服
我正在尝试截取在 lcdtv 上播放的 roku 应用程序的屏幕截图。 将您的 Roku 置于开发者模式。确认您的 Roku 的 IP 地址。 Side load your app to the Ro
UIImage* image = nil; UIGraphicsBeginImageContextWithOptions(scrollView.contentSize, YES, 0); {
我有一个 View Controller ,它通过按钮进入 TableView Controller 。 在 View Controller 中,导航栏是完全半透明的(如下面的屏幕截图所示)。在 Ta
我使用- (BOOL)presentPreviewAnimated:(BOOL)animated; 来加载文档,然后我想从文档中截取屏幕截图。所以我尝试 UIGraphicsBeginImageCon
我不知道如何使用 css (-fx-... :...) 将这种效果应用于 javaFX 2 中的文本字段; 我需要像屏幕截图中那样的东西。我有一个带有该背景的面板,我需要文本字段将其变暗一点(它看起来
我在我的 Windows 应用程序中使用 C++/Direct2D,我在 pRenderTarget->BeginDraw() 和 pRenderTarget->EndDraw() 之间绘制一些线条和
我正在尝试使用后台服务截取屏幕截图。此服务就像 Facebook chathead,但我希望它在我点击时截取屏幕截图。 我已经开发了一些代码,但它不起作用。我最后尝试的是: private void
我搜索了很多有关在 Android 上截取我的 OpenGL 对象的屏幕截图的信息,并提出了 this解决方案。它工作得很好,但在我的例子中,我在相机 View 之上有相机 View 和 opengl
我开始在 xcode 中编程,当我启动它时,xcode 会问我“你是谁”。有人知道需要做什么吗?谢谢! 截图: 最佳答案 Xcode 包含对 Git 的集成支持。你的屏幕截图是 Git 要求你设置你的
我需要对ARSCNView进行截图,类定义如下: public class SceneLocationView: ARSCNView, ARSCNViewDelegate { } 我正在按照以下方法完
我是一名优秀的程序员,十分优秀!