捕获窗口 - 将活动窗口保存为 XYZ.BMP
本文介绍如何捕获应用程序的活动窗口。

引言
捕获窗口是一个小型应用程序,用于捕获应用程序的活动窗口。这个程序是我为我的一个应用程序编写的。但当我完成它的时候,我认为它对开发者来说可能很有用。它可以用来捕获程序的运行情况。
这个项目尚未完成,它是一个正在进行中的工作。当前版本存在许多需要解决的问题。我的长期目标是将它开发到“商业质量”。
我将继续改进这个应用程序,朝着我的目标前进。我会根据需要继续发布更新。
背景
捕获窗口是我在开发我的应用程序俄罗斯方块时,需要保存游戏屏幕时编写的一个小程序。这个程序提供了一个功能,可以将包含分数和名称/引用的窗口保存为 BMP 文件。
用法
只需运行该应用程序。您将看到如图所示的屏幕。这允许您添加您的姓名和引言。现在只需单击“保存屏幕截图”按钮。这将生成一个名为“Active Window.BMP”的 BMP 文件。
这篇文章对那些厌倦了尝试将活动窗口捕获为 BMP 的程序员们来说很有用。
技术详情
基本上,我们使用 BitBlt()
来获取当前窗口。通常,这比使用 GetPixel()
和 SetPixel()
效果更好。使用这个函数,我们将活动窗口复制到 Picturebox
。现在我们使用 SavePicture
将活动窗口保存为 BMP。
Using the Code
API 声明
Public Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, _
ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, _
ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
按钮事件
Private Sub cmdScreenShot_Click()
frmCanvas.PicSaveScreen.Cls
frmCanvas.PicSaveScreen.Height = Me.ScaleHeight + 60
frmCanvas.PicSaveScreen.Width = Me.ScaleWidth + 60
BitBlt frmCanvas.PicSaveScreen.hDC, 0, 0, _
Me.ScaleWidth, Me.ScaleHeight, Me.hDC, 0, 0, vbSrcCopy
SavePicture frmCanvas.PicSaveScreen.Image, App.Path & "\Active Window.BMP"
End Sub
历史
- 2005-08-12 - 文章的初始发布