VBS调用系统API

简介: 如Beep的API声明为 Public Declare Function Beep Lib “kernel32″ Alias “Beep” (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long 则使用方法如下 '创建对...

如Beep的API声明为

Public Declare Function Beep Lib “kernel32″ Alias “Beep” (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

则使用方法如下

'创建对象
Set Wrap = CreateObject("DynamicWrapper")
'注册API
Wrap.Register "KERNEL32.DLL", "Beep", "i=ll", "f=s", "r=l"
'调用API
Wrap.Beep(500, 100)

其中注册API中, “i=ll”是API的参数类型, “f=s”是调用方式, “r=l”是返回类型
这些可以参考下面的说明。

REM i: (Argument Type)
REM 'a', sizeof(IDispatch*), VT_DISPATCH}	// a IDispatch*
REM 'c', sizeof(unsigned char), VT_I4}		// c signed char
REM 'd', sizeof(double), VT_R8}			// d 8 byte real
REM 'f', sizeof(float), VT_R4}			// f 4 byte real
REM 'k', sizeof(IUnknown*), VT_UNKNOWN}		// k IUnknown*
REM 'h', sizeof(long), VT_I4}			// h HANDLE
REM 'l', sizeof(long), VT_I4}			// l long
REM 'p', sizeof(void*), VT_PTR}			// p pointer
REM 's', sizeof(BSTR), VT_LPSTR}		// s string
REM 't', sizeof(short), VT_I2}			// t short
REM 'u', sizeof(UINT), VT_UINT}			// u unsigned int
REM 'w', sizeof(BSTR), VT_LPWSTR}		// w wide string

REM f: (Call Method)
REM 'm' - DC_MICROSOFT 0x0000, Default
REM 'b' - DC_BORLAND 0x0001, Borland compat
REM 's' - DC_CALL_STD 0x0020, __stdcall
REM 'c' - DC_CALL_CDECL 0x0010, __cdecl
REM '4' - DC_RETVAL_MATH4 0x0100, Return value in ST
REM '8' - DC_RETVAL_MATH8 0x0200, Return value in ST

REM r: (Return Type)
REM Same as i

示例:

'用机箱内的蜂鸣器播放音乐
Sub BeepMusic()
	Set Wrap = CreateObject("DynamicWrapper")
	Wrap.Register "KERNEL32.DLL", "Beep", "i=ll", "f=s", "r=l"
	res = Wrap.Beep(500, 100)
	res = Wrap.Beep(550, 100)
	res = Wrap.Beep(600, 100)
	res = Wrap.Beep(650, 100)
	res = Wrap.Beep(700, 700)
	WScript.Sleep 200
	res = Wrap.Beep(700, 100)
	res = Wrap.Beep(650, 100)
	res = Wrap.Beep(600, 100)
	res = Wrap.Beep(550, 100)
	res = Wrap.Beep(500, 700)
End Sub
BeepMusic
'取前景窗体标题
Sub GetForeWindowCaption()
	Const WM_GETTEXT = &HD
	Set Wrap = CreateObject("DynamicWrapper")
	Wrap.Register "USER32.DLL", "GetForegroundWindow", "f=s", "r=l"
	Wrap.Register "USER32.DLL", "SendMessage", "i=lllr", "f=s", "r=l"
	Title = Space(100)
	res = Wrap.SendMessage(Wrap.GetForegroundWindow(), WM_GETTEXT , 100, Title)
	GetForeWindowCaption = Title
End Sub
MsgBox GetForeWindowCaption
'发送键盘消息,显示桌面
Sub ShowDesktop()
	Const VK_LWIN = &H5B
	Const VK_D = &H44
	Public Const KEYEVENTF_KEYUP = &H2
	Set Wrap = CreateObject("DynamicWrapper")
	Wrap.Register "USER32.DLL", "keybd_event", "i=ccll", "f=s"
	Wrap.keybd_event VK_LWIN, 0, 0, 0
	Wrap.keybd_event VK_D, 0, 0, 0
	Wrap.keybd_event VK_D, 0, KEYEVENTF_KEYUP, 0
	Wrap.keybd_event VK_LWIN, 0, KEYEVENTF_KEYUP, 0
End Sub
ShowDesktop
技术改变世界! --狂诗绝剑
目录
相关文章
|
2月前
|
算法 Linux API
【Linux系统编程】Linux下删除文件的 API方式以及文件删除机制差异
【Linux系统编程】Linux下删除文件的 API方式以及文件删除机制差异
43 0
|
2月前
|
安全 中间件 API
跨平台整合:如何在不同系统中使用淘宝商品详情API
使用淘宝商品详情API实现跨平台整合,涉及步骤包括理解平台要求、研究API文档、设计数据模型、开发中间件、确保安全认证、测试调试、遵循法规、UI适配及持续维护。此过程能共享数据,提升效率,增加销售机会,优化顾客体验。注意API调用限制、数据格式及各平台特定需求。
27 1
|
2天前
|
Linux API
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
|
1月前
|
存储 监控 BI
HIS系统是什么?一套前后端分离云HIS系统源码 接口技术RESTful API + WebSocket + WebService
医院管理信息系统(全称为Hospital Information System)即HIS系统。 常规模版包括门诊管理、住院管理、药房管理、药库管理、院长查询、电子处方、物资管理、媒体管理等,为医院管理提供更有力的保障。 HIS系统以财务信息、病人信息和物资信息为主线,通过对信息的收集、存储、传递、统计、分析、综合查询、报表输出和信息共享,及时为医院领导及各部门管理人员提供全面、准确的各种数据。 门诊医生工作站采用下拉式汉化菜单,界面友好,实用性强,设有与门诊挂号收费系统、医技科室信息系统、住院结算信息系统的软件接口。
36 1
|
1月前
|
Java BI API
SAP Cloud for Customer 里如何通过 ABSL 二次开发方式消费 SAP S/4HANA 系统的 API
SAP Cloud for Customer 里如何通过 ABSL 二次开发方式消费 SAP S/4HANA 系统的 API
21 0
|
2月前
|
算法 Linux API
【Linux系统编程】一文了解 Linux目录的创建和删除API 创建、删除与读取
【Linux系统编程】一文了解 Linux目录的创建和删除API 创建、删除与读取
31 0
【Linux系统编程】一文了解 Linux目录的创建和删除API 创建、删除与读取
|
消息中间件 监控 安全
探究如何在Linux系统中修改进程资源限制:四种方法调整进程限制,让你的系统高效运行(包含应用层getrlimit和setrlimit API)
探究如何在Linux系统中修改进程资源限制:四种方法调整进程限制,让你的系统高效运行(包含应用层getrlimit和setrlimit API)
60 0
|
2月前
|
数据采集 供应链 前端开发
电商企业如何构建一站式数字化供应链体系|API接口实现淘宝/京东/1688多平台商品采集+上传一站式供应链系统搭建
网络时代,企业面临转型。如今进入数字化时代,企业再次面临重大变革,全面实现数字化、智能化已是当务之急。公司将继续良性发展,请记住16个字:精简流程、降低成本、提高效率、智慧管理。主流电商平台API商品数据采集接口,不但可以在商品采集上为供应链提供大量商品,同时我们也可以通过申请官方商品上传商品发布API接口,实现商品的多平台发布。
|
2月前
|
数据采集 JavaScript API
第三方系统访问微搭低代码的后端API
第三方系统访问微搭低代码的后端API
|
2月前
|
移动开发 API HTML5
HTML5响应式自动采集API壁纸系统源码自适应手机端
HTML5响应式自动采集API壁纸系统源码自适应手机端
41 11
HTML5响应式自动采集API壁纸系统源码自适应手机端