65.9K
CodeProject 正在变化。 阅读更多。
Home

捕获窗口 - 将活动窗口保存为 XYZ.BMP

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.46/5 (9投票s)

2005 年 8 月 11 日

CPOL

1分钟阅读

viewsIcon

53565

downloadIcon

1746

本文介绍如何捕获应用程序的活动窗口。

引言

捕获窗口是一个小型应用程序,用于捕获应用程序的活动窗口。这个程序是我为我的一个应用程序编写的。但当我完成它的时候,我认为它对开发者来说可能很有用。它可以用来捕获程序的运行情况。

这个项目尚未完成,它是一个正在进行中的工作。当前版本存在许多需要解决的问题。我的长期目标是将它开发到“商业质量”。

我将继续改进这个应用程序,朝着我的目标前进。我会根据需要继续发布更新。

背景

捕获窗口是我在开发我的应用程序俄罗斯方块时,需要保存游戏屏幕时编写的一个小程序。这个程序提供了一个功能,可以将包含分数和名称/引用的窗口保存为 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 - 文章的初始发布
© . All rights reserved.