资源描述:
《利用vb捕捉并保存屏幕图像》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、利用VB捕捉并保存屏幕图像大家知道在VB下利用API函数Bitblt可以将屏幕或者窗口上的图象拷贝到VB中的PictureBox对象中,但是如果简单的利用PictureBox的SavePicture函数来保存图象,会发现什么也保存不了。这篇文章就是介绍如何捕获并利用Windows下的OLEAPI函数保存图象。 首先来看源程序,首先建立一个新的工程文件,然后在Form1中加入5个CommandButton对象和一个PictureBox对象,然后在Form1中加入以下代码:OptionExplicitOptionB
2、ase0PrivateTypePALETTEENTRY peRedAsByte peGreenAsByte peBlueAsByte peFlagsAsByteEndTypePrivateTypeLOGPALETTE palVersionAsInteger palNumEntriesAsInteger palPalEntry(255)AsPALETTEENTRYEndTypePrivateTypeGUID Data1AsLong Data2AsInteger Data3AsInteger Data4(7)AsBy
3、teEndTypePrivateConstRASTERCAPSAsLong=38PrivateConstRC_PALETTEAsLong=&H100PrivateConstSIZEPALETTEAsLong=104PrivateTypeRECT LeftAsLong TopAsLong RightAsLong BottomAsLongEndTypePrivateDeclareFunctionCreateCompatibleDCLib"GDI32"(ByValhDCAsLong)AsLongPrivateDecla
4、reFunctionCreateCompatibleBitmapLib"GDI32"(ByValhDCAsLong,_ ByValnWidthAsLong,ByValnHeightAsLong)AsLongPrivateDeclareFunctionGetDeviceCapsLib"GDI32"(ByValhDCAsLong,ByVal_ iCapabilitiyAsLong)AsLongPrivateDeclareFunctionGetSystemPaletteEntriesLib"GDI32"(B
5、yValhDCAsLong,_ ByValwStartIndexAsLong,ByValwNumEntriesAsLong,lpPaletteEntries_ AsPALETTEENTRY)AsLongPrivateDeclareFunctionCreatePaletteLib"GDI32"(lpLogPaletteAsLOGPALETTE)_ AsLongPrivateDeclareFunctionSelectObjectLib"GDI32"(ByValhDCAsLong,ByValhObje
6、ct_ AsLong)AsLongPrivateDeclareFunctionBitBltLib"GDI32"(ByValhDCDestAsLong,ByValXDestAs_ Long,ByValYDestAsLong,ByValnWidthAsLong,ByValnHeightAsLong,_ ByValhDCSrcAsLong,ByValXSrcAsLong,ByValYSrcAsLong,ByValdwRop_ AsLong)AsLongPrivateDeclareFunction
7、DeleteDCLib"GDI32"(ByValhDCAsLong)AsLongPrivateDeclareFunctionGetForegroundWindowLib"USER32"()AsLongPrivateDeclareFunctionSelectPaletteLib"GDI32"(ByValhDCAsLong,ByValhPalette_ AsLong,ByValbForceBackgroundAsLong)AsLongPrivateDeclareFunctionRealizePaletteLib
8、"GDI32"(ByValhDCAsLong)AsLongPrivateDeclareFunctionGetWindowDCLib"USER32"(ByValhWndAsLong)AsLongPrivateDeclareFunctionGetDCLib"USER32"(ByValhWndAsLong)AsLongPrivateDeclareFunctionGetWindo