摘要
在很多情况下,我们常常需要将当前的屏幕截取下来,在 DOS 环境下,实现这一点已经有很成熟的技术基础,但随着进入了 Windows 环境之后,这件事情不再简单。在一般的 DOS 程序中,我们可以通过直接对 A000:0000地址开始的显存数据和显示卡的寄存器进行操作,实现对当前显示图形的截取,但在 Windows 环境下,我们的程序无法再直接对这些地址进行存取,也不能直接操作 DOS 下的中断,要实现截屏就非常困难。《中国计算机用户》1996年20期的文章《用 VB 实现屏幕存储程序》提供了一种思路:先用 API 函数 GetDesktopWindow 获取桌面窗口的句柄,再用 API 函数 BitBlt,将屏幕拷贝到 VB 的图画构件的 Picture 属性里,最后用 VB 的 SavePicture 将图画以 BMP 格式存盘。虽然我们可以通过 GetDesk-