51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6238|回复: 8
打印 上一主题 下一主题

[原创] 怎么分别用VBS和QTP自带的函数库截屏,求高手。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-9-17 16:24:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想分别用vbs和QTP截屏,请高手给一下各自的代码吧。最好能讲解一下,非常感激
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-9-17 22:11:14 | 只看该作者
object.CaptureBitmap Filename, [OverrideExisting]
object 可以是Desktop,也可以是具体的对象,如Browser("。。。").Dialog("。。。")
如果使用Desktop将截整个桌面,具体的对象则截具体对象作为图片
filename 是截图后保存的文件名
OverrideExisting是可选项,指示是否覆盖同名文件,设置为True将覆盖,默认为False,不覆盖
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-9-18 12:27:44 | 只看该作者
参考如下脚本
Dim PathWay,myTime,FileName
PathWay="d:\testing\"
     myTime=now( )
     TimeStamp=year(myTime)&"y"&month(myTime)&"m"&day(myTime)&"d"&hour(myTime)&"h"&minute(myTime)&"min"&second(now)&"s"
     FileName=PathWay&TimeStamp&".bmp"
     Desktop.CaptureBitmap FileName
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-9-19 08:49:39 | 只看该作者
不知道两种截图后的效果有何不同 , 什么样的需求导致要这样实现, Ths
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-9-19 20:19:30 | 只看该作者
回复 4# Jun_Li


你自己写段代码试试就知道,Desktop是截整个桌面,而具体的object是截具体的对象,如窗口,按钮等,至于什么样的需求,就是根据需要了
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2010-9-19 21:14:45 | 只看该作者
VBS调用SnagIt的组件进行截屏的代码:

Option Explicit

Dim objSnagit, strMsg, wshShell

' Check command line arguments (none required)
If WScript.Arguments.Count > 0 Then Syntax

' Capture input type
Const siiDesktop        =  0
Const siiWindow         =  1
Const siiRegion         =  4
Const siiGraphicFile    =  6
Const siiClipboard      =  7
Const siiDOSScreen      =  8
Const siiMenu           =  9
Const siiObject         = 10
Const siiProgramFile    = 11
Const siiFreehand       = 12
Const siiEllipse        = 13
Const siiRoundedRect    = 14
Const siiTriangle       = 15
Const siiPolygon        = 16
Const siiWallpaper      = 17
Const siiCustomScroll   = 18
Const siiTWAIN          = 19
Const siiDirectX        = 20
Const siiExtendedWindow = 23

' Window selection method
Const swsmInteractive   =  0
Const swsmActive        =  1
Const swsmHandle        =  2
Const swsmPoint         =  3

' Capture output type
Const sioPrinter        =  1
Const sioFile           =  2
Const sioClipboard      =  4
Const sioMail           =  8
Const sioFTP            = 32

' Output image type
Const siftBMP           =  0
Const siftPCX           =  1
Const siftTIFF          =  2
Const siftJPEG          =  3
Const siftGIF           =  4
Const siftPNG           =  5
Const siftTGA           =  6

' Output color depth
Const sicdAuto          =  0
Const sicd1Bit          =  1
Const sicd2Bit          =  2
Const sicd3Bit          =  3
Const sicd4Bit          =  4
Const sicd5Bit          =  5
Const sicd6Bit          =  6
Const sicd7Bit          =  7
Const sicd8Bit          =  8
Const sicd16Bit         = 16
Const sicd24Bit         = 24
Const sicd32Bit         = 32

' Output file naming method
Const sofnmPrompt       =  0
Const sofnmFixed        =  1
Const sofnmAuto         =  2


' Create the required objects
Set objSnagit = CreateObject( "SNAGIT.ImageCapture.1" )
Set wshShell  = CreateObject( "WScript.Shell" )

' Set input options
objSnagit.Input         = siiDesktop
objSnagit.IncludeCursor = True

' Set output options
objSnagit.Output                           = sioFile
objSnagit.OutputImageFile.FileType         = siftPNG
objSnagit.OutputImageFile.ColorDepth       = sicd32Bit
objSnagit.OutputImageFile.FileNamingMethod = sofnmFixed
objSnagit.OutputImageFile.Filename         = "snagtest"
objSnagit.OutputImageFile.Directory        = "C:\"

' Capture
objSnagit.Capture

' Launch the captured image in the default viewer
wshShell.Run "C:\snagtest.png", 0, False

' Release the objects
Set objSnagit = Nothing
Set wshShell  = Nothing


Sub Syntax
    strMsg = vbCrLf _
           & WScript.ScriptName & ",  Version 1.01" _
           & vbCrLf _
           & "Automate a SnagIt full screen capture" _
           & vbCrLf & vbCrLf _
           & "Usage:  " & UCase( WScript.ScriptName ) _
           & vbCrLf & vbCrLf _
           & "Notes:  [1] The resulting screenshot is saved as C:\snagtest.png." _
           & vbCrLf _
           & "            An existing file will be overwritten." _
           & vbCrLf _
           & "        [2] This script requires SnagIt to be installed on the local computer." _
           & vbCrLf _
           & "            SnagIt is commercial screen capture software by TechSmith." _
           & vbCrLf _
           & "            A 30-day trial version is available for download:" _
           & vbCrLf _
           & "            http://www.techsmith.com/screen-capture.asp" _
           & vbCrLf & vbCrLf _
           & "Written by Rob van der Woude" _
           & vbCrLf _
           & "http://www.robvanderwoude.com"
    WScript.Echo strMsg
    WScript.Quit 1
End Sub
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2010-9-21 16:46:16 | 只看该作者
回复  Jun_Li


你自己写段代码试试就知道,Desktop是截整个桌面,而具体的object是截具体的对象,如窗 ...
rojer521 发表于 2010-9-19 20:19



   
其实这个意思呢,就是说
Desktop就是按print
object就是按Alt+print
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2011-5-19 14:23:26 | 只看该作者
那如果VBS调用ScreenCapture函数时,是怎么执行的呢?
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2011-5-19 14:43:31 | 只看该作者
那如果VBS调用ScreenCapture函数时,是怎么执行的呢?
yunbin_7 发表于 2011-5-19 14:23



TIB不是说得很清楚了么
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-28 07:13 , Processed in 0.070575 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表