龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VB开发 >

用VB捕捉屏幕图象

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
声明: PrivateDeclareFunctionReleaseDCLib"user32"(ByValhwndAsLong,ByValhdcAsLong)AsLong PrivateDeclareFunctionOpenClipboardLib"user32"(ByValhwndAsLong)AsLong PrivateDeclareFunctionEmptyClipboardLib"user32"()AsLong PrivateDeclareFunctionSe
声明:
  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->

精彩图集

赞助商链接