日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

VBS調(diào)用Windows API函數(shù)

 昵稱597197 2011-01-11

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

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

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

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中調(diào)用Windows API不屬于本文的討論范圍,請自己查閱資料。使用oExcel.Run "MyMacro",0,0調(diào)用我們寫入的VBA代碼。

本文章由本人收集整理,轉(zhuǎn)載本文章請保留本信息!

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多