手机
当前位置:查字典教程网 >脚本专栏 >vbs >VBS调用Windows API函数的代码
VBS调用Windows API函数的代码
摘要:那天无意中搜索到一篇《WinCCVBS利用EXCEL调用WindowsAPI函数》的文章,不知道WinCC是什么,Google了一下好像跟西...

那天无意中搜索到一篇《WinCC VBS利用EXCEL调用Windows API函数》的文章,不知道WinCC是什么,Google了一下好像跟西门子自动化有关。WinCC是什么并不重要,重要的是这篇文章提供了VBS调用Windows API的一种思路——EXCEL VBA,一种传说比VB还要VB的语言。

但是那篇文章中的例子都是使用已经写好的EXCEL VBA程序,即首先得存在一个EXCEL文件。我就想,能不能在VBS中通过excel.application对象创建一个包含VBA代码的EXCEL文档然后再调用它呢?Google来Google去,终于在微软帮助和支持中找到了方法。

结合两篇文章(请先阅读这两篇文章),写了一个示例程序,效果是移动鼠标至桌面左上角。如果你的EXCEL不是太盗版,双击这个VBS后应该可以看到效果。

复制代码 代码如下:

Dim WshShell

set WshShell = CreateObject("wscript.Shell")

WshShell.RegWrite "HKEY_CURRENT_USERSoftwareMicrosoftOffice11.0ExcelSecurityAccessVBOM",1,"REG_DWORD"

WshShell.RegWrite "HKEY_CURRENT_USERSoftwareMicrosoftOffice12.0ExcelSecurityAccessVBOM",1,"REG_DWORD"

WshShell.RegWrite "HKEY_CURRENT_USERSoftwareMicrosoftOffice14.0ExcelSecurityAccessVBOM",1,"REG_DWORD"

Dim oExcel, oBook, oModule

Set oExcel = CreateObject("excel.application")

Set oBook = oExcel.Workbooks.Add

Set oModule = obook.VBProject.VBComponents.Add(1)

strCode = _

"Private Declare Function SetCursorPos Lib ""user32"" (ByVal x As Long, ByVal y As Long) As Long" & vbCr & _

"Sub MyMacro(x as Long, y as Long)" & vbCr & _

"SetCursorPos x, y" & vbCr & _

"End Sub"

oModule.CodeModule.AddFromString strCode

oExcel.Run "MyMacro",0,0

oExcel.DisplayAlerts = False

oBook.Close

oExcel.Quit

前面3-5行的修改注册表是为了让VBS能够完全控制EXCEL,strCode即为写入EXCEL中的VBA代码,至于怎样在VBA中调用Windows API不属于本文的讨论范围,请自己查阅资料。使用oExcel.Run "MyMacro",0,0调用我们写入的VBA代码。

原文:http://demon.tw/programming/vbs-excel-invoke-windows-api.html

【VBS调用Windows API函数的代码】相关文章:

用vbs控制iis创建虚拟目录的代码

windows2003一句话开3389的vbs代码

使用SAFEARRAY返回的代码

用vbscript脚本实现返回 IP 配置数据的代码

vbscript 调用WebService实现代码

PDF的VBS小程序代码

VBS破坏性应用代码

VBS 生成不重复随机数代码[0-10]

VBS脚本使用WMI操作注册表的代码第1/2页

用vbs确定用户的登录名的代码

精品推荐
分类导航