vba截屏保存
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Enum
JpMode
theScreen = 0 '全屏截图
theForm = 1
'当前焦点窗口截图
End Enum
Private Declare Function GetClipboardData Lib
"user32" (ByVal wFormat As Long) As Long
Private Declare Function
CloseClipboard Lib "user32" () As Long
Private Declare Function
OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare
Function OleCreatePictureIndirect Lib "olepro32.dll" (PicDesc As PicBmp, RefIID
As Guid, ByVal fPictureOwnsHandle As Long, IPic As IPicture) As Long
Private Const CF_BITMAP = 2
Private Type PicBmp
Size As
Long
Type As Long
hBmp As Long
hPal As
Long
Reserved As Long
End Type
Private Type
Guid
Data1 As Long
Data2 As Integer
Data3 As
Integer
Data4(0 To 7) As Byte
End Type
Function
ApiGetClipBmp() As IPicture
On Error Resume Next
Dim Pic As PicBmp, IID_IDispatch As Guid
OpenClipboard 0
'OpenClipboard
With IID_IDispatch
.Data1 =
&H20400
.Data4(0) = &HC0
.Data4(7) =
&H46
End With
With Pic
.Size =
Len(Pic)
.Type = 1
.hBmp =
GetClipboardData(CF_BITMAP)
End With
OleCreatePictureIndirect Pic, IID_IDispatch, 1, ApiGetClipBmp
'stdole.SavePicture ApiGetClipBmp, "c:\clipboard.bmp"
CloseClipboard
End Function
Function KeyJp(Optional ByVal
TheMode As JpMode = theScreen) As IPictureDisp
'版权所有,请保留作者信息.QQ:1085992075 '如需商业用途请联系作者
Call
keybd_event(vbKeySnapshot, TheMode, 0, 0) '
DoEvents
'Set KeyJp = Clipboard.GetData
End Function
Sub dd()
KeyJp (theScreen)
SavePicture ApiGetClipBmp,
"c:\2.bmp"
End Sub
最新文章
- winform下的简易播放器
- mkforsela
- Ninject之旅之七:Ninject依赖注入
- json与jsonp小结
- 深入理解Message, MessageQueue, Handler和Looper
- Gym 100637F F. The Pool for Lucky Ones
- Linux下如何使CP命令不提示覆盖
- foreach的参数不是数组:Warning: Invalid argument supplied for foreach
- 有关html,css,js,less的使用规范
- Gym 100952 D. Time to go back(杨辉三角形)
- iOS 用RunTime来提升按钮的体验
- [OC] 富文本 AttributedString 以及 用富文本解析html文本
- SQL Server 主键及自增长列的修改
- 吴恩达机器学习笔记6-梯度下降II(Gradient descent intuition)--梯度下降的直观理解
- Flask里面session的基本操作
- HDU contest808 ACM多校第7场 Problem - 1008: Traffic Network in Numazu
- activeMq-1 快速入门
- CPP全面总结(涵盖C++11标准)
- WPF经典编程模式-MVVM示例讲解
- STP实验(指定特定交换机为根桥)
热门文章
- hrbust 1621 迷宫问题II 广搜
- <;NET CLR via c# 第4版>;笔记 第10章 属性
- 『转』Bitdefender Internet Security 2013 – 免费1年
- myeclipse单步调试
- (转)RESTful API 设计最佳实践
- 项目中一个Jenkins权限配置的过程
- Linux运维学习笔记-网络安全等级保护
- 新转移注意(caffe):ImportError: libcudart.so.7.0: cannot open shared object file: No such file or directory
- windows 不能在本地计算机启动SqlServer. 参考特定服务错误代码10048
- noi.ac上的一套(假)NOI题