把VB当前的窗口保存成图片到桌面 ?

 我来答
百度网友bdb9803
2011-04-23 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:53%
帮助的人:1亿
展开全部
Call keybd_event(vbKeySnapshot, theForm, 0, 0) '截取活动的本窗体
'‘若theForm改成theScreen则Copy整个Screen
DoEvents

PictureClip1.Picture = Clipboard.GetData(vbCFBitmap) 'PictureClip1.Picture得到剪切板的内容(截取的本窗体)

'以用API函数getsystemmetric获得窗口标题栏的默认高度(实际上为26,边框为4,单位像素),

PictureClip1.ClipX = aicAlphaImage1Front.Left + 4
PictureClip1.ClipY = aicAlphaImage1Front.Top + 26 + 4 + 2 '此处的2为实验后的经验
'抓图的x y坐标,指左上角的坐标

PictureClip1.ClipHeight = aicAlphaImage1Front.Height
PictureClip1.ClipWidth = aicAlphaImage1Front.Width
'抓图的大小
Picture1.Picture = PictureClip1.Clip 'picture1得到剪切后的本窗体某个区域(大头贴)的内容
Clipboard.Clear

PhotoName = CStr(Date) & "-" & CStr(Format(Now, "h-m-s")) + ".Bmp"
PhotoName1 = App.Path + "\大头贴相片\" & PhotoName

SavePicture Picture1.Image, PhotoName1
追问
这是按钮click事件么?
保存的时候能自动存在桌面以text1内的字符为文件名吗?
追答
修改了一下,调试通过!form上放置一个picturebox,为了不影响窗口布局,可以拖到窗口不可见区域

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Const theForm = 1
Const theScreen = 0

Private Sub Command1_Click()

Picture1.Visible = False
Picture1.Move 0, 0, Me.Width, Me.Height

Call keybd_event(vbKeySnapshot, theForm, 0, 0) '截取活动的本窗体,若theForm改成theScreen则Copy整个Screen
DoEvents

Picture1.Picture = Clipboard.GetData(vbCFBitmap) 'Picture1.Picture得到剪切板的内容(截取的本窗体)
Clipboard.Clear

PhotoName = "\VB截图.Bmp"
PhotoName1 = App.Path & PhotoName

SavePicture Picture1.Image, PhotoName1
End Sub
smh1982
2011-04-26 · TA获得超过843个赞
知道小有建树答主
回答量:1578
采纳率:0%
帮助的人:891万
展开全部
楼上这位回答得不错,只是楼主比较关心的是如何放在桌面上去。
楼主你可以自己修改这句:
PhotoName1 = App.Path & PhotoName
这个变量是用来存放位置的,你自己改到桌面去,比方:
PhotoName1 = "C:\Documents and Settings\ANDROID\桌面\"+Text1.Text+".bmp"
当然ANDROID用你自己的用户名来替换。
来自:求助得到的回答
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式