如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

最新文章

  1. log4net位置与使用方法
  2. Pywinauto在Windows Twain Driver自动化测试中的应用研究
  3. user-select : 保护版权内容的简单方案
  4. 7、java实现的两种单例模式
  5. POJ 1173 Find them, Catch them
  6. [Javascript] Introducing Reduce: Common Patterns
  7. shell中的双括号表达式
  8. ThinkPHP第二十天(getField用法、常用管理员表结构、树形结构前小图标CSS)
  9. 关于iOS性能调优
  10. PHP安全、Sql防注入安全汇总
  11. (NO.00001)iOS游戏SpeedBoy Lite成形记(十六)
  12. “放到桌面”的Servlet实现
  13. Netty从入门到精通到放弃
  14. failed to find global analyzer [uax_url_email]
  15. 5.21http网页基础
  16. Java中的 内部类(吐血总结)
  17. SIP 编解码器
  18. Java利用JNI调用C/C++写成的DLL
  19. Asp.Net对Json字符串的解析和应用
  20. [机翻] WIRER ON THE WIRE - SIGNALR协议的非正式描述

热门文章

  1. 快乐编程学ruby
  2. Oracle 连接字符串
  3. inception cenOS 安装
  4. Multi-Objective Data Placement for Multi-Cloud Socially Aware Services---INFOCOM 2014
  5. Online Procurement Auctions for Resource Pooling in Client-Assisted Cloud Storage Systems---INFOCOM 2015
  6. Node.js入门 NPM
  7. jquery操作ajax返回的页面元素
  8. pull类型消息中间件-消息服务端(三)
  9. iOS开发播放文本
  10. HDU 1312 Red and Black (DFS)