最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

VBS調用Windows API函數的代碼

 更新時間:2011年01月21日 23:38:25   作者:  
結合兩篇文章(請先閱讀這兩篇文章),寫了一個示例程序,效果是移動鼠標至桌面左上角。

那天無意中搜索到一篇《WinCC VBS利用EXCEL調用Windows API函數》的文章,不知道WinCC是什么,Google了一下好像跟西門子自動化有關。WinCC是什么并不重要,重要的是這篇文章提供了VBS調用Windows API的一種思路——EXCEL VBA,一種傳說比VB還要VB的語言。

但是那篇文章中的例子都是使用已經寫好的EXCEL VBA程序,即首先得存在一個EXCEL文件。我就想,能不能在VBS中通過excel.application對象創(chuàng)建一個包含VBA代碼的EXCEL文檔然后再調用它呢?Google來Google去,終于在微軟幫助和支持中找到了方法。

結合兩篇文章(請先閱讀這兩篇文章),寫了一個示例程序,效果是移動鼠標至桌面左上角。如果你的EXCEL不是太盜版,雙擊這個VBS后應該可以看到效果。

復制代碼 代碼如下:

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

相關文章

最新評論

托里县| 潼南县| 商水县| 顺义区| 娱乐| 雅安市| 崇义县| 彭水| 惠来县| 萨嘎县| 高安市| 嘉祥县| 河南省| 湟中县| 民权县| 德惠市| 财经| 白水县| 青田县| 富锦市| 尚志市| 芜湖市| 淳化县| 昭通市| 襄樊市| 瑞金市| 泰顺县| 江城| 湟源县| 开阳县| 左权县| 溆浦县| 哈巴河县| 交口县| 广东省| 洛南县| 武汉市| 东台市| 永仁县| 招远市| 成都市|