WEB开发网
开发学院WEB开发综合 用VB捕捉屏幕图象 阅读

用VB捕捉屏幕图象

 2006-02-27 11:52:47 来源:WEB开发网   
核心提示:声明:PRivateDeclareFunctionReleaseDCLib"user32"(ByValhwndAsLong,ByValhdcAsLong)AsLongPrivateDeclareFunctionOpenClipboardLib"user32"(ByValhwndA
声明:
PRivateDeclareFunctionReleaseDCLib"user32"(ByValhwndAsLong,ByValhdcAsLong)AsLong
PrivateDeclareFunctionOpenClipboardLib"user32"(ByValhwndAsLong)AsLong
PrivateDeclareFunctionEmptyClipboardLib"user32"()AsLong
PrivateDeclareFunctionSetClipboardDataLib"user32"(ByValwFormatAsLong,ByValhMemAsLong)AsLong
PrivateDeclareFunctionSelectObjectLib"gdi32"(ByValhdcAsLong,ByValhObjectAsLong)AsLong
PrivateDeclareFunctionDeleteDCLib"gdi32"(ByValhdcAsLong)AsLong
PrivateDeclareFunctionBitBltLib"gdi32"(ByValhDestDCAsLong,
ByValxAsLong,ByValyAsLong,ByValnWidthAsLong,ByValnHeightAsLong,ByValhSrcDCAsLong,ByValxSrcAsLong,ByValySrcAsLong,ByValdwRopAsLong)AsLong
PrivateDeclareFunctionCreateDCLib"gdi32"Alias"CreateDCA"(ByVallpDriverNameAsString,ByVallpDeviceNameAsString,ByVallpOutputAsString,lpInitDataAsLong)AsLong
PrivateDeclareFunctionCreateCompatibleDCLib"gdi32"(ByValhdcAsLong)AsLong
PrivateDeclareFunctionCreateCompatibleBitmapLib"gdi32"(ByValhdcAsLong,ByValnWidthAsLong,ByValnHeightAsLong)AsLong
PrivateDeclareFunctionCloseClipboardLib"user32"()AsLong
函数:
SubScrnCap(Lt,Top,Rt,Bot)
rWidth=Rt-Lt
rHeight=Bot-Top
SourceDC=CreateDC("DISPLAY",0,0,0)
DestDC=CreateCompatibleDC(SourceDC)
BHandle=CreateCompatibleBitmap(SourceDC,rWidth,rHeight)
SelectObjectDestDC,BHandle
BitBltDestDC,0,0,rWidth,rHeight,SourceDC,Lt,Top,&HCC0020
Wnd=Screen.ActiveForm.hwnd
OpenClipboardWnd
EmptyClipboard
SetClipboardData2,BHandle
CloseClipboard
DeleteDCDestDC
ReleaseDCDHandle,SourceDC
EndSub
以下的示例把屏幕图象捕捉后,放到Picture1中。
SubCommand1_Click()
Form1.Visible=False
ScrnCap0,0,640,480
Form1.Visible=True
picture1=Clipboard.GetData()
EndSub->

Tags:VB 捕捉 屏幕

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接