常用功能加载宏——调用微信截图
时间:2022-07-22
本文章向大家介绍常用功能加载宏——调用微信截图,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Excel2010版本以上有一个屏幕截图功能:
但这个功能在使用的时候,不是很方便,电脑版微信的截图功能就比较丰富,使用也很方便。
使用VBA来调用微信的dll就可以实现在Excel里使用微信的截图功能了:
首先在customUI.xml中增加代码:
<button id="rbbtnWeiXinPrScrn" label="微信截图 " size="large" onAction="rbbtnWeiXinPrScrn" imageMso="PhotoAlbumInsert" />
回调函数:
Sub rbbtnWeiXinPrScrn(control As IRibbonControl)
Call MOther.WeiXinPrScrn
End Sub
函数实现:
插入模块MOther,因为要调用dll,所以要使用API,首先定义微信dll的API:
Private Declare Function PrScrn Lib "PrScrn.dll" () As Long
VBA在加载dll的时候,默认是在系统目录中查找对应的dll的,所以,可以先把PrScrn.dll复制一份到系统目录,但不建议轻易去操作系统目录,我们使用另外一种方法来加载dll。
创建一个空白加载宏,命名vbapKernel32.xlam,目的是把kernel32这个dll的函数声明都放在这里,输入代码:
Public Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Public Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
添加工具-引用vbapKernel32.xlam。
实现微信截图函数:
Private Declare Function PrScrn Lib "PrScrn.dll" () As Long
Sub WeiXinPrScrn()
Dim hdll As Long
Dim dllpath As String
'指定dll的文件路径
dllpath = "…………PrScrn.dll"
'加载dll
hdll = LoadLibrary(dllpath)
If hdll = 0 Then
MsgBox "dll加载错误:" & dllpath
Exit Sub
End If
'调用PrScrn.dll的截图函数
PrScrn
'释放dll
FreeLibrary hdll
End Sub
注:
如果没有安装电脑微信,或者微信安装目录没有PrScrn.dll,也可以百度搜索PrScrn.dll,下载存放到电脑上,然后设置程序中的dllpath就可以。
- [WCF权限控制]基于Windows用户组的授权方式[上篇]
- EnterLib PIAB又一个BUG?
- 关于WCF的一个非常“无语”的BUG!
- 谈谈分布式事务之一:SOA需要怎样的事务控制方式
- [WCF权限控制]WCF的三种授权模式
- [WCF安全系列]消息的保护等级[下篇]
- [WCF安全系列]通过绑定元素看各种绑定对消息保护的实现
- 通过添加HTTP Header实现上下文数据在WCF的自动传递
- 模拟在WCF中的应用
- [WCF权限控制]通过扩展自行实现服务授权[提供源码下载]
- [WCF权限控制]WCF自定义授权体系详解[原理篇]
- [WCF权限控制]WCF自定义授权体系详解[原理篇]
- [WCF权限控制]WCF自定义授权体系详解[实例篇]
- [ASP.NET MVC]通过对HtmlHelper扩展简化“列表控件”的绑定
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 如何在 CentOS 下快速搭建 Nginx 服务器
- Servlet API 源码剖析
- Borg:Google集群管理大杀器
- 一文了解Zookeeper
- 【投稿】刀哥:Rust学习笔记 4
- Spring Boot 运行源码剖析
- Spring Boot 特性之 Lazy
- Spring Boot 特性之 Banner
- Spring Boot 特性之 Fluent Builder API
- 一文搞懂 Flink Timer
- DATE类型的“小陷阱”
- 简单聊下 Java Agent
- Byte Buddy 基础知识
- 两种在SAP Cloud Application Studio里通过编程对C4C UI字段赋值的方法
- 如何使用 BTrace v.2.0.1