源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

VBS调用Windows API函数的代码

  • 时间:2021-04-24 10:32 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:VBS调用Windows API函数的代码
那天无意中搜索到一篇[url=http://blog.cec.pandabuying.com/hylotus/236483.aspx]《WinCC VBS利用EXCEL调用Windows API函数》[/url]的文章,不知道WinCC是什么,Google了一下好像跟西门子自动化有关。WinCC是什么并不重要,重要的是这篇文章提供了VBS调用Windows API的一种思路——EXCEL VBA,一种传说比VB还要VB的语言。 但是那篇文章中的例子都是使用已经写好的EXCEL VBA程序,即首先得存在一个EXCEL文件。我就想,能不能在VBS中通过excel.application对象创建一个包含VBA代码的EXCEL文档然后再调用它呢?Google来Google去,终于在[url=http://support.microsoft.com/kb/194611]微软帮助和支持[/url]中找到了方法。 结合两篇文章(请先阅读这两篇文章),写了一个示例程序,效果是移动鼠标至桌面左上角。如果你的EXCEL不是太盗版,双击这个VBS后应该可以看到效果。
[u]复制代码[/u] 代码如下:
Dim WshShell set WshShell = CreateObject("wscript.Shell") WshShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Security\AccessVBOM",1,"REG_DWORD" WshShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security\AccessVBOM",1,"REG_DWORD" WshShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Security\AccessVBOM",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
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部