请问如何用API函数实现截图功能?

dingsl_pig 2005-03-25 12:48:32
比如一个实时变化的图片,用VB实现在后台实时截图的功能。应该怎么实现啊?
...全文
907 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
qjzrd 2005-04-20
  • 打赏
  • 举报
回复
侃侃
dingsl_pig 2005-04-13
  • 打赏
  • 举报
回复
请问是在哪里搜索的?
还想懒够 2005-04-12
  • 打赏
  • 举报
回复
mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN98\98VS\2052\kb.chm::/Source/vbwin/q161299.htm

MSDN中有一代码,这是MSDN中的相应地址,如果不会查找,就直接搜索Q161299,就可以看到相关的拷屏的代码了。

这里面的代码是基于hwnd以及Rect获取屏幕图片的,挺管用。
dingsl_pig 2005-04-10
  • 打赏
  • 举报
回复
up
zy1306 2005-04-09
  • 打赏
  • 举报
回复
有没有办法比较两个时刻图片不同的部分,再把不同的部分提取出来,然后再....

唉,说白了就是怎样用较少的资然做个远程监控的程序
dingsl_pig 2005-04-08
  • 打赏
  • 举报
回复
up
dingsl_pig 2005-04-06
  • 打赏
  • 举报
回复
请问楼上的是什么意思?
还想懒够 2005-04-06
  • 打赏
  • 举报
回复
没有什么最大化最小化的,就直接获取图片载体的hwnd,然后再截图。


具体代码请参考MSDN中的
mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN98\98VS\2052\kb.chm::/Source/vbwin/q161299.htm


仔细看看代码就可以更改为你想要的代码了。
dingsl_pig 2005-04-05
  • 打赏
  • 举报
回复
up
幻影时空 2005-04-05
  • 打赏
  • 举报
回复
哇.最小化的窗体的图片都要截出来呀?

我觉得,只有一个办法.

改变它的状态吧!先把它最大化出来,再截,截了之后再恢复!呵呵!
dingsl_pig 2005-03-30
  • 打赏
  • 举报
回复
Up 比较急用啊 请帮忙 怎么才能用VB实现将一个最小化的窗口里显示的图片信息截出来呢?
dingsl_pig 2005-03-29
  • 打赏
  • 举报
回复
如果一个窗口被最小化了 怎么才能截取到这个窗口的全部内容和信息那?
比如说 这个窗口显示的是一个不停变化的图片但是它被最小化了 那么这个时候怎么实时截取他的信息呢?
xinliangyu 2005-03-28
  • 打赏
  • 举报
回复
截屏就是截窗体,因为"屏幕"也是窗体!修改一下DC就行了嘛,老兄!
dingsl_pig 2005-03-28
  • 打赏
  • 举报
回复
谢谢大家 请问findwindow是一个什么样的子函数啊?
cly2004 2005-03-28
  • 打赏
  • 举报
回复
up
sakurako 2005-03-28
  • 打赏
  • 举报
回复
表问怎么获取目标窗口的DC,首先用N种方法可以获得该窗口的句柄,用FindWindow最easy了
dim hwnd as long
dim hdc as long
hwnd=findwindow(vbnullstring,"窗口标题")
hdc=getDC(hwnd)
ok,hdc就是你要截取的窗口的DC句柄了,下面随意你蹂躏他咯
幻影时空 2005-03-27
  • 打赏
  • 举报
回复
截图的代码好多啊..呵呵,我就收信了两种方式!!(+ laviewpbt)的是第三种了!

Option Explicit

Private Type POINTAPI
x As Long
y As Long
End Type
Private 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 Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
Private Declare Function GetCursor Lib "user32" () As Long

Private Sub Command1_Click()
Dim hdc As Long, nWidth As Integer, nHeight As Integer, nScreenWidth As Integer, nScreenHeight As Integer
Dim CurPos As POINTAPI
Dim Cur As Long
Me.Hide
DoEvents
Picture1.AutoRedraw = True
hdc = GetDC(0)
nScreenWidth = Screen.Width
nScreenHeight = Screen.Height
Picture1.Width = nScreenWidth
Picture1.Height = nScreenHeight
nWidth = nScreenWidth / Screen.TwipsPerPixelX
nHeight = nScreenHeight / Screen.TwipsPerPixelY
BitBlt Picture1.hdc, 0, 0, nWidth, nHeight, hdc, 0, 0, vbSrcCopy
Me.Show
GetCursorPos CurPos
Cur = GetCursor
DrawIcon Picture1.hdc, CurPos.x - 10, CurPos.y - 10, Cur
ReleaseDC 0, hdc
Picture1.AutoRedraw = False
End Sub
------------
这种还能截到鼠标的呢!
dingsl_pig 2005-03-27
  • 打赏
  • 举报
回复
可是不是截屏幕 是截某一个实时变化的窗口啊
TechnoFantasy 2005-03-25
  • 打赏
  • 举报
回复
屏幕抓图软件的源程序(Delphi4.0 1.0.0.0版的源程序)
可以定时抓图片
xinliangyu 2005-03-25
  • 打赏
  • 举报
回复
看看鄙人这篇文章:
http://blog.csdn.net/xinliangyu/archive/2005/01/31/Save_screen_image_to_a_File_in_VB_propramming.aspx
其下的函数hDCToPicture 变是变指定DC对象上任意矩形区域图形转换成stdPicture对象,该对象可以用savepicture方法保存为图像文件
加载更多回复(1)

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧