日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Vbs脚本编程

發布時間:2024/8/1 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vbs脚本编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


? ?? ?—
為什么要使用Vbs? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?

? ???
Windows中,學習計算機操作也許很簡單,但是很多計算機工作是重復性勞動,例如你每周也許需要對一些計算機文件進行復制、粘貼、改名、刪除,也許你每天啟動計算機第一件事情就是打開WORD,切換到你喜愛的輸入法進行文本編輯,同時還要播放優美的音樂給工作創造一個舒心的環境,當然也有可能你經常需要對文本中的某些數據進行整理,把各式各樣的數據按照某種規則排列起來……。這些事情重復、瑣碎,使人容易疲勞。

第三方軟件也許可以強化計算機的某些功能,但是解決這些重復勞動往往事倍功半,我也嘗試過使用計算機語言編寫程序來解決這些問題,但是隨之而來的命令、語法、算法、系統框架和類庫常常讓我覺得這樣是否有必要,難道就是因為豬毛比較難拔,所以我就要去學習機械,為自己設計一個拔豬毛機(?)嗎?

Vbs
是一種Windows腳本,它的全稱是:Microsoft Visual Basic Script Editon.(微軟公司可視化BASIC腳本版)VBSVisual Basic的的一個抽象子集,是系統內置的,用它編寫的腳本代碼不能編譯成二進制文件,直接由Windows系統執行(實際是一個叫做宿主host的解釋源代碼并執行),高效、易學,但是大部分高級語言能干的事情,它基本上都具備,它可以使各種各樣的任務自動化,可以使你從重復瑣碎的工作中解脫出來,極大的提高工作效率。

我個人認為Vbs腳本其實就是一種計算機編程語言,但是由于缺少計算機程序設計語言中的部分要素,對于事件的描述能力較弱,所以稱為腳本,它最方便的地方就是提供了對COM對象的簡便支持。那么什么是COM對象呢?

我這樣理解,COM對象就是一些具有特定函數功能項程序模塊,他們一般以ocx或者dll作為擴展名,你只要找到包含有你需要的功能的模塊文件,并在腳本中規范的引用,就可以實現特定的功能,也就是說Vbs腳本就是調用現成的控件作為對象,用對象的屬性和方法實現目的,完全免去了編寫代碼、設計算法等等麻煩。說白了,我不是覺得拔豬毛麻煩么?我發覺xx機(比如真空離心器)有一個功能可以實現脫毛,ok,我把它拿來給豬脫毛。什么?大材小用?太浪費資源了?天哪,那是計算機芯片的事情,死道友不死貧道,反正我的事情是方便快速的解決了,這就行了。

最方便的是它甚至不需要專門的開發環境,在你的計算機中,只要有notepad,就可以編寫Vbs腳本了,并且可以直接執行。
就像多數計算機教程一樣,我們從“Hello??World程序開始我們的練習。什么?不知道是什么意思?就是說大部分的計算機程序設計教程開篇入門都是編寫一個小程序,執行這個程序的結果就是在計算機的屏幕上或者dos窗口中顯示一行文字:Hello??World!好了,我們開始吧。

打開你的記事本程序,在編輯窗口填寫:

msgbox "Hello World!"

然后用鼠標單擊文件菜單,單擊保存,把保存在一欄設為桌面,在文件名一欄中填寫kk.vbs,單擊保存就可以了。然后最小化記事本窗口,在桌面上尋找你剛剛保存的kk.vbs,然后雙擊。看到彈出的對話框了沒有,單擊確定,對話框消失了。[作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]難看了點,不過確實是你編寫的第一個腳本程序。

說明之一:上面的操作中,保存位置放在桌面,僅僅是為了執行方便,你保存到其他的地方完全沒有問題,只要你知道你保存在什么地方就可以了,什么?是廢話,自己保存的當然知道保存在那里了。不,自己保存的文件自己找不到的人我見的多了去了。文件名你可以隨意填寫,不一定非要寫kk,只要符合Windows的文件命名規則就可以了,但是擴展名必須是vbs,什么?不知道什么是擴展名?就是文件名中“.”后的那部分,簡單說,就是vbs腳本文件命名時必須是:xxx.vbs,其中xxx你隨意。

說明之二:在記事本編輯窗口中寫的這行是什么意思?

Msgbox
VBS內建的函數,每一個函數都可以完成一定的功能,你只需要按照語法要求,在函數的相應部分填寫相應的內容就可以了,這部分內容我們稱為參數,當然函數執行的結果我們稱為返回值,一個函數可以有返回值也可以沒有,可以有參數也可以沒有。你不用了解函數是怎么運作的,只要了解這個函數能干什么就行了。

Msgbox
語法:msgbox??"對話框內容", , "對話框的標題"

你不妨用記事本打開剛才的文件在編輯窗口中輸入:

msgbox "Hello World!" , , "
系統提示"

執行一下,看看效果和位置。

說明之三:如果執行失敗,看看你的標點符號,所有的標點符號必須是在英文狀態下輸入的。[作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]

當然,這個腳本實在是太簡單了,甚至連最簡單的交互都沒有,所以你可以把腳本這樣修改一下:

Dim name

name=Inputbox("
請輸入你的名字:","名稱")

Msgbox??name, , "
您的名字是"

保存執行一下,看到彈出的對話框了么?填入你的名字,點確定,看到結果了嗎?

說明之一:第一句是定義變量,dim是定義變量的語句

其格式為:dim 變量1,變量2……

Vbs
只有一種變量類型,所以不用聲明變量類型。系統會自動分辨變量類型。

說明之二:inputboxVBS內建的函數,可以接受輸入的內容,其語法格式為:

Inputbox("
對話框內容","對話框標題")

第二句的意思是接受用戶的輸入,并把輸入結果傳遞給變量name

好了,到此腳本基本的輸入輸出函數都有了,已經可以完成一些比較簡單的功能了,你可以編寫一個簡單的腳本,然后拷貝的程序”—>“啟動中,然后重新啟動計算機看看結果。[作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處





VBScript
基礎知識

一、變量

1
、所有單引號后面的內容都被解釋為注釋。

2
、在VBScript中,變量的命名規則遵循標準的命名規則,需要注意的是:在VBScript中對變量、方法、函數和對象的引用是不區分大小寫的。在申明變量時,要顯式地申明一個變量,需要使用關鍵字DIm來告訴VBScript你要創建一個變量,并將變量名稱跟在其后。申明多個同類型變量,可以用逗號分隔。注意:VBScript中不允許在申明變量的時候同時給變量賦值。但是允許在一行代碼內同時對兩個變量進行賦值,中間用冒號分隔。

3
、你可以使用OptionExplicit來告訴宿主變量必須先聲明后使用。

4
VBScript在定義時只有一種變量類型,[作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]在實際使用中需要使用類型轉換函數來將變量轉換成相應的變量類型。

Cbool
函數將變量轉換成布爾值;

Cbyte
函數將變量轉換為0255之間的整數。

Ccur
函數、Cdbl函數和Csng函數將變量轉換為浮點數值,前者只精確到小數點后四位,后兩者要更加精確,數值的范圍也要大的多。

Cdate
函數將變量轉換為日期值。

Cint
函數和Clng函數將變量轉換為整數,后者的范圍比前者要大的多。

Cstr
函數將變量轉換為字符串。


二、數組

數組的定義與變量非常類似,只需要在變量后描述這個數組的個數和維數。需要注意的是:數組的下標總是從0開始,而以數組定義中數值減一結束。也就是說你以要定義一個有十個數據的數組,將這樣書寫代碼:dImarray9),同樣,當你要訪問第五個元素時,實際的代碼是array(4)。當然,你可以通過不指定數組的個數和維數來申明動態數組。等到數組的個數和維數固定后,使用關鍵字redim來改變數組。注意,在改變數組的大小時,數組的數據會被破壞,使用關鍵字preserve來保護數據。例如:

RedIm
空格preserve空格array括號個數逗號維數括號


三、操作符

VBScript運算符中,加減乘除都是我們常用的符號,乘方使用的是 ^ ,取模使用的Mod

在比較操作符中,等于、小于、大于、小于等于、大于等于都與我們常用的符號是一致的,而不等于是小于和大于連用。

邏輯運算符為:和操作—>AND? ???非操作—>NOT? ???或操作—>OR

你可以使用操作符 + 和操作符 & 來連接字符串,一般使用&操作符;

另外還有一個比較特殊的操作符Is用來比較對象,例如按鈕對象,如果對象是同一類型,結果就是真,如果對象不是同一類型,結果就是假。


四、條件語句主要有if……then語句和selectcase語句兩種形式

if……then語句中,其基本形式為:

If??
條件??then

處理條件的語句;

……

Endif

基本形式只能對單個條件進行驗證,如果有兩個條件,則需要在基本形式中添加單行語句else,如果還有更多的條件需要驗證,則需要添加語句

Elseif
條件??then

處理條件語句

selectcase語句中,其基本形式為:

Select??case??
變量

Case??
條件值

處理條件語句

并對上兩句進行重復

最后一句應為

case??else

處理語句

當然不要忘記將條件結束語句End??select放在最后一行

注意:在執行字符串比較時,需要特別注意大小寫,一般情況下,我們在比較前,使用lcase函數將字符串轉換成小寫,使用ucase函數將字符串轉換成大寫大寫。


五、循環控制語句

循環控制語句有for……next循環、for……each循環、do……while循環、do……until循環、while循環五種形式。

在使用循環控制語句前,[作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]首先要對循環條件進行判斷,如果循環次數是有固定次數的,那么使用For……next循環,其結構為:

For? ?
計數器變量=開始計數值??to??最后計數值

執行循環體

Next

如果是需要對數組或對象集合中的每一個元素進行判斷,則需要使用for……each循環,其結構為:

For??each??
循環計數變量??in??要查看的對象或數組

執行處理語句

Next

注意:在上述兩種循環中隨時可以使用exit??for來退出循環

如果你希望在條件滿足時執行一段代碼則使用do……while語句,結構為:

Do??while??
條件

執行循環體

Loop

如果你希望在條件不滿足時執行代碼,則使用do……until語句,結構為:

Do
until 條件

執行循環體

Loop

當然,在這兩種循環語句中,你可以使用exit??do來退出循環

最后一種循環語句是條件滿足時一直執行循環,

While??
條件

執行循環體

Wend


六、使用過程

常用的過程有兩種,一種為函數,給調用者返回值,一種為子程序,無返回值,還有一種叫事件的特殊子程序,用的比較少。

函數的基本定義方法為:

Function??
函數名稱(參數列表)

函數代碼

函數名稱=某值用來返回值

end??function

子程序一些都類似,不過沒有返回值

注意:盡管在定義子程序的時候,參數列表要加括號,但在調用子程序的時候,參數列表不加括號,括號只在函數中使用。另外,子程序不能在表達式中使用。

而函數只能出現在賦值語句的右邊,或者表達式中,函數不能直接使用,如果必須直接使用函數,則必須使用call語句調用,并取消返回值
Vbs
只提供了編程的一個基本框架,用戶可以使用Vbs來定義變量、過程和函數,vbs也提供了一些內部函數和對象,但是Vbs沒有提供任何命令來訪問Windows系統內部的部件,但是值得慶幸的是,Vbs雖然不能自己完成這些任務,但是它提供了一條極為方便、功能也相當強的命令——CreateObject,這條命令可以訪問windows系統內安裝的所有com對象,并且可以調用這些部件中存放的命令。

于是問題解決了,比如說,[作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]我手頭有1000個小文本,我首先要對每一個文本的語法進行查錯和修改,然后按照預先定義好的規則對這些文本進行排序,最后將這些文本合并成為一個文件。正常情況下,我們需要把打開第一個小文本,然后把它復制到WORD中,然后利用里面的除錯功能進行除錯和修改,然后再導入到EXCEL中進行排序,將這個過程重復1000遍,然后再將所有得到的文本復制到一個大文本中。實在是太枯燥、工作量太大了。有了VbsCreateObject,問題得到解決,我只需要找到相應的模塊,調用相應的功能就可以了,作為腳本,把一個枯燥的過程重復1000次,本就是它的拿手好戲。

好了,我們走入正題,從最簡單的——只啟動一個程序開始。

WSH
也就是用來解析Vbs的宿主,本身包含了幾個個常用對象:

1
Scripting.FileSystemObject??—>??提供一整套文件系統操作函數

2
Scripting.Dictionary??—>??用來返回存放鍵值對的字典對象

3
Wscript.Shell??—>??提供一套讀取系統信息的函數,如讀寫注冊表、查找指定文件的路徑、讀取DOS環境變量,讀取鏈接中的設置

4
Wscript.NetWork??—>??提供網絡連接和遠程打印機管理的函數。(其中,所有Scripting對象都存放在SCRRUN.DLL文件中,所有的Wscript對象都存放在WSHOM.ocx文件中。)

現在我們需要的是第三個對象,好了,讓我們先連接一下對象看看,在記事本的編輯窗口中輸入:

Set objShell = CreateObject(“Wscript.Shell”)

objShell.Run “notepad”

同樣,保存執行。那么看到了一個什么樣的結果呢?在桌面上又打開了一個記事本。

說明之一:SetVbs指令,凡是將一對象引用賦給變量,就需要使用set關鍵字。那么什么是對象引用呢?凡是字符串、數值、布爾值之外的變量都是對象引用。Objshell是變量名,可以隨意修改。

說明之二:反是正確引用的對象,其本身內置有函數和變量,其引用方法為在變量后加“. ”,后緊跟其實現功能的函數就可以了。Objshell.run 的意思就是調用Wscript.shell中的運行外部程序的函數——runnotepad是記事本程序的文件名。當然你也可以改成“calc”,這是計算器的文件名,winwordword的文件名,等等吧,所有可執行文件的文件名都可以。但是需要注意的是,如果你要執行的可執行文件存放的地方不是程序安裝的常用路徑,一般情況下,需要提供合法的路徑名,但是run在運行解析時,遇到空格會停止,解決的方法是使用雙引號,[作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]例如:在我的機器上運行qq,代碼為:

objshell.run """C:\Program Files\QQ2006\QQ.exe"""??‘
注:三個引號


好,我們再進一步,啟動兩個程序會如何呢?

輸入如下代碼:

Set objShell = CreateObject(“Wscript.Shell”)

objShell.Run “notepad”

objShell.Run “calc”

執行會如何呢?兩個程序基本上同時啟動了。如果我們需要先啟動notepad再啟動calc將如何呢?很簡單在需要順序執行的代碼后加 , , True參數就可以了。

好了輸入代碼:

Set objShell = CreateObject(“Wscript.Shell”)

objShell.Run “notepad” ,,true

objShell.Run “calc”

看看執行的結果怎么樣吧!

總結:run函數有三個參數,第一個參數是你要執行的程序的路徑,第二個程序是窗口的形式,0是在后臺運行;1表示正常運行;2表示激活程序并且顯示為最小化;3表示激活程序并且顯示為最大化;一共有10個這樣的參數我只列出了4個最常用的。第三個參數是表示這個腳本是等待還是繼續執行,如果設為了true,腳本就會等待調用的程序退出后再向后執行。
其實,run做為函數,前面還有一個接受返回值的變量,一般來說如果返回為0,表示成功執行,如果不為0,則這個返回值就是錯誤代碼,可以通過這個代碼找出相應的錯誤




Vbs腳本編程簡明教程之五
? ?? ???—
錯誤處理

引發錯誤的原因有很多,例如用戶輸入了錯誤類型的值,或者腳本找不到必需的文件、目錄或者驅動器,我們可以使用循環技術來處理錯誤,但是VBS本身也提供了一些基本技術來進行錯誤的檢測和處理。

1
、最常見的錯誤是運行時錯誤,也就是說錯誤在腳本正在運行的時候發生,是腳本試圖進行非法操作的結果。例如零被作為除數。在vbs中,任何運行時錯誤都是致命的,此時,腳本將停止運行,并在屏幕上顯示一個錯誤消息。你可以在腳本的開頭添加

On??Error Resume??Next??

這行語句可以告訴vbs在運行時跳過發生錯誤的語句,緊接著執行跟在它后面的語句。

發生錯誤時,[作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]該語句將會把相關的錯誤號、錯誤描述和相關源代碼壓入錯誤堆棧。

2
、雖然On Error Resume Next語句可以防止vbs腳本在發生錯誤時停止運行,但是它并不能真正處理錯誤,要處理錯誤,你需要在腳本中增加一些語句,用來檢查錯誤條件并在錯誤發生時處理它。

vbscript
提供了一個對象err對象,他有兩個方法clearraise5個屬性:descriptionhelpcontexthelpfilenumbersource

err
對象不用引用實例,可以直接使用,例如:

on error resume next

a=11

b=0

c=a/b

if err.number<>0 then

wscript.echo err.number & err.description??& err.source

end if??



Vbs腳本編程簡明教程之六
? ?? ?? ?—
修改注冊表??


Vbs
中修改注冊表的語句主要有:

1
、讀注冊表的關鍵詞和值:

可以通過把關鍵詞的完整路徑傳遞給wshshell對象的regread方法。例如:

set ws=wscript.createobject("wscript.shell")

v=ws.regread("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\nwiz")

wscript.echo v

2
、寫注冊表

使用wshshell對象的regwrite方法。例子:

path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\"

set ws=wscript.createobject("wscript.shell")

t=ws.regwrite(path & "jj","hello")

這樣就把

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\jj
這個鍵值改成了hello.不過要注意:這個鍵值一定要預先存在。 [作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]


如果要創建一個新的關鍵詞,同樣也是用這個方法。

path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\run\sssa2000\love\"

set ws=wscript.createobject("wscript.shell")

val=ws.regwrite(path,"nenboy")

val=ws.regread(path)

wscript.echo val

??

刪除關鍵字和值

使用regdelete方法,把完整的路徑傳遞給regdelete就可以了

例如

val=ws.regdel(path)

注意,如果要刪除關鍵詞的值的話一定要在路徑最后加上“\”,如果不加斜線,就會刪除整個關鍵詞。



Vbs腳本編程簡明教程之七
? ?? ???—FSO
的常見對象和方法
文件系統是所有操作系統最重要的部分之一,腳本經常會需要對文件及文件夾進行訪問和管理,在Vbs中對桌面和文件系統進行訪問的頂級對象是FileSystemObject(FSO),這個對象特別復雜,是vbs進行文件操作的核心。此節內容應了如指掌。


FSO
包含的常見對象有:


Drive
對象:包含儲存設備的信息,[作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]包括硬盤、光驅、ram盤、網絡驅動器

Drives
集合:提供一個物理和邏輯驅動器的列表

File??
對象:檢查和處理文件

Files
集合:提供一個文件夾中的文件列表

Folder
對象:檢查和處理文件夾

Folders
集合:提供文件夾中子文件夾的列表

Textstream
對象:讀寫文本文件


FSO
的常見方法有:


BulidPath
:把文件路徑信息添加到現有的文件路徑上

CopyFile
:復制文件

CopyFolder
:復制文件夾

CreateFolder
:創建文件夾

CreateTextFile
:創建文本并返回一個TextStream對象

DeleteFile
:刪除文件

DeleteFolder
:刪除文件夾及其中所有內容

DriveExits
:確定驅動器是否存在

FileExits
:確定一個文件是否存在

FolderExists
:確定某文件夾是否存在

GetAbsolutePathName
:返回一個文件夾或文件的絕對路徑

GetBaseName
:返回一個文件或文件夾的基本路徑

GetDrive
:返回一個dreve對象

GetDriveName
:返回一個驅動器的名字

GetExtensionName
:返回擴展名

GetFile
:返回一個file對象

GetFileName
:返回文件夾中文件名稱

GetFolder
:返回一個文件夾對象

GetParentFolderName
:返回一個文件夾的父文件夾

GetSpecialFolder:
返回指向一個特殊文件夾的對象指針

GetTempName:
返回一個可以被createtextfile使用的隨機產生的文件或文件夾的名稱

MoveFile
:移動文件

MoveFolder
:移動文件夾[作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]

OpenTextFile
:打開一個存在的文件并返回一個TextStream對象



Vbs腳本編程簡明教程之八
? ?? ???—FSO
中文件夾的基本操作

1
、使用fso

由于fso不是wsh的一部分,所以我們需要建立他的模型

例如set fs=wscript.createobject(“scripting.filesystemobject”)

這樣就建立了fso的模型。如果要釋放的話也很簡單,set fs=nothing


2
、使用文件夾

在創建前,[作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]我們一般需要檢查該文件夾是否存在例如:

dim fs,s //
定義fss兩個變量

set fs=wscript.createobject(“scripting.filesystemobject”) //fs
FSO實例

if (fs.folderexists(“c:\temp”)) then //
判斷c:\temp文件夾是否存在

s=”is available”

else

s=”not exist”

set foldr=fs.createfolder(“c:\temp”) //
不存在則建立

end if??

刪除:??set fs=wscript.createobject(“scripting.filesystemobject”)

fs.deletefolder(“c:\windows”)

??

拷貝: set fs=wscript.createobject(“scripting.filesystemobject”)

fs.copyfolder “c:\data” “d:\data”

注意:如果c:\data d:\data都存在,腳本會出錯,復制也就會停止,如果要強制覆蓋,使用fs.copyfolder “c:\data” “d:\data”true

??

移動:??set fs=wscript.createobject(“scripting.filesystemobject”)

fs.movefolder “c:\data” “d:\data”

??

我們可以使用統配符,來方便操作:

例如, fs.movefolder :c:\data\te*” , “d:\working”

注意:在目的路徑最后沒有使用“\” 也就是說我沒有這樣寫:

fs.movefolder c:\data\te*” , “d:\working\”

這樣寫的話,如果d:\working 目錄不存在,windows就不會為我們自動創建這個目錄。

??

注意:上面我們所舉的例子都是在利用fso提供的方法,如果使用folder對象也完全是可以的:

set fs= wscript.createobject(“scripting.filesystemobject”)

set f=fs.getfolder(“c:\data”)

f.delete??//
刪除文件夾c:\data。如果有子目錄,也會被刪除

f.copy “d:\working”,true? ? //
拷貝到d:\working

f.move “d:\temp”? ? //
移動到d:\temp

??

3
、特殊文件夾

一般指的就是系統文件夾:\windows\system32臨時文件夾,windows文件夾,在前幾篇的時候,[作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]我們提過一下:例如

set fs=wscript.createobject(“scripting.filesystemobject”)

set wshshell=wscript.createobject(“wscript.shell”)

osdir=wshshell.expandenvironmentstrings(“%systemroot%”)

set f =fs.getfolder(osdir)

wscript.echo f


當然,還有簡單的方法那就是使用getspecialfolder()

這個方法使用3種值:

0??
表示windows文件夾,相關常量是windowsfolder

1??
系統文件夾,相關常量是systemfolder

2??
臨時目錄,相關常量temporaryfolder

例如:

set fs=wscript.createobject(“scripting.filesystemobject”)

set wfolder=fs.getspecialfolder(0) ‘
返回windows目錄

set wfolder=fs.getspecialfolder(1) ‘
返回system32\

set wfolder=fs.getspecialfolder(2)'
返回臨時目錄


Vbs腳本編程簡明教程之九
? ?? ???—
妙用SendKeys簡化重復操作??
每次開機的時候,你想自動登陸你的QQ或者網志嗎?巧妙使用VBS中的SendKeys命令(這個命令的作用就是模擬鍵盤操作,將一個或多個按鍵指令發送到指定Windows窗口來控制應用程序運行),可以極大的方便我們的常用操作。其使用格式為:

Object.SendKeys string
其中:

Object
:為WshShell對象,即腳本的第一行為:

Set WshShell=WScript.CreateObject("WScript.Shell")??

Object替換為WshShell

“string”
:表示要發送的按鍵指令字符串,需要放在英文雙引號中。它包含如下內容:[作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]

1
.基本鍵:一般來說,要發送的按鍵指令都可以直接用該按鍵字符本身來表示,例如要發送字母“x”,使用“WshShell.SendKeys "x"”即可。當然,也可直接發送多個按鍵指令,只需要將按鍵字符按順序排列在一起即可,例如,要發送按鍵“cfan”,可以使用

“WshShell.SendKeys "cfan"”


2
.特殊功能鍵:對于需要與ShiftCtrlAlt三個控制鍵組合的按鍵,SendKeys使用特殊字符來表示:Shift? ?——? ?+Ctrl? ?——? ?^Alt? ?——? ?%

如要發送的組合按鍵是同時按下CtrlE,需要用“WshShell.SendKeys "^e"”表示,如果要發送的組合按鍵是按住Ctrl鍵的同時按下EC兩個鍵,這時應使用小括號把字母鍵括起來,書寫格式為“WshShell.SendKeys "^(ec)"”,這里要注意它與“WshShell.SendKeys "^ec"”的區別,后者表示組合按鍵是同時按住CtrlE鍵,然后松開Ctrl鍵,單獨按下“C”字母鍵。
由于“+”“^”這些字符用來表示特殊的控制按鍵了,如何表示這些按鍵呢?只要用大括號括住這些字符即可。例如,要發送加號“+”,可使用“WshShell.SendKeys "{+}"”。另外對于一些不會生成字符的控制功能按鍵,也同樣需要使用大括號括起來按鍵的名稱,例如要發送回車鍵,需要用“WshShell.SendKeys "{ENTER}"”表示,發送向下的方向鍵用

“WshShell.SendKeys "{DOWN}"”
表示。

如果需要發送多個重復的單字母按鍵,不必重復輸入該字母,SendKeys允許使用簡化格式進行描述,使用格式為“{按鍵數字}”。例如要發送10個字母“x”,則輸入“WshShell.SendKeys "{x 10}"”即可。

例一:WshShell.SendKeys "^{ESC}u"[作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]

代碼的含義為:按下CtrlEsc組合鍵(相當于按Win鍵)打開開始菜單,接著按U鍵打開關機菜單。

例二:讓VBS腳本自動在記事本中輸入一行文字“hello, welcome to cfan”

Dim WshShell

Set WshShell=WScript.CreateObject("WScript.Shell")

WshShell.Run "notepad"

WScript.Sleep 2000? ?

//
本行的含義為是腳本暫停2秒,給notepad一個打開的時間,有時時間太短可能導致后面的字符無法進入編輯區

WshShell.AppActivate "
無標題 - 記事本

"//AppActivate
為尋找可執行程序的標題框,無標題-記事本內容你的自己打開看一下

WshShell.SendKeys "hello, welcome to cfan"

作業1:讓腳本自動輸入下面兩段小短句

This is the most wonderful day of my life
because I'm here with you now
作業2:讓腳本在輸入短句后自動關閉記事本,并保存文件名為“test”,注意關閉記事本可以直接使用組合按鍵AltF4來實現

例三:制作能自動定時存盤的記事本

我們最常用的記事本沒有WordWPS那樣的自動定時存盤功能,其實利用VBS腳本再加上SendKeys命令,就能彌補這個遺憾。打開記事本,輸入以下內容(為容易描述和分析,把代碼分為四個部分):

'
第一部分:定義變量和對象

Dim WshSh[
作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]ell, AutoSaveTime, TXTFileName

AutoSaveTime=300000

Set WshShell=WScript.CreateObject("WScript.Shell")

TXTFileName=InputBox("
請輸入你要創建的文件名(不能用中文和純數字)")

'
第二部分:打開并激活記事本

WshShell.Run "notepad"

WScript.Sleep 200

WshShell.AppActivate "
無標題 - 記事本"

'
第三部分:用輸入的文件名存盤

WshShell.SendKeys "^s"

WScript.Sleep 300

WshShell.SendKeys TXTFileName

WScript.Sleep 300

WshShell.SendKeys "%s"

WScript.Sleep AutoSaveTime

'
第四部分:自動定時存盤

While WshShell.AppActivate (TXTFileName)=True

WshShell.SendKeys "^s"

WScript.Sleep AutoSaveTime

Wend

WScript.Quit

將其保存為記事本.vbs,以后要使用記事本時,都通過雙擊這個腳本文件來打開。

程序說明:這個腳本的基本思路是定時向記事本發送CtrlS這個存盤組合鍵。

第一部分:定義了腳本中需要用到的變量和對象。“AutoSaveTime”變量用來設置自動存盤間隔,單位為毫秒,這里設置為5分鐘。“TXTFileName”變量通過輸入框取得你要創建的文本文件名稱。[作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]

第二部分:運行記事本,對于Windows本身提供的程序,比如計算器等,可直接在“WshShell.Run”后輸入程序名稱,如"calc",對于非系統程序,則可輸入完全路徑,但要注意使用8.3格式輸入,比如“"D:\Progra~1\Tencent\QQ.exe"”

第三部分:這里用SendKeys命令執行了這樣的操作流程(請注意每個操作之間延時命令的使用):在記事本中按CtrlS組合鍵彈出保存文件的窗口輸入文件名AltS組合鍵進行保存(默認保存在我的文檔目錄)。

第四部分:定時存盤的關鍵,通過“While……Wend”這個當條件為時循環命令,實現自動存盤代碼“WshShell.SendKeys "^s"”和定時代碼“WScript.Sleep AutoSaveTime”的重復執行。因為不能讓這個定時存盤循環一直執行,退出記事本后,必須自動退出腳本并結束循環,所以設計了一個循環判斷條件“WshShell.AppActivate TXTFileName=True”,當記事本運行中時,可以激活記事本窗口,這個條件運行結果為“True”,定時存盤循環一直執行,退出記事本后,腳本無法激活記事本窗口,就會跳出循環,執行“Wend”后面的“WScript.Quit”退出腳本。

例四:快速登陸QQ軟件。假設QQ號碼是:10001,密碼是:123456,隱身登陸:

set ws=wscript.createobject("wscript.shell")

? ? ws.run "C:\Progra~1\Tencent\QQ\QQ.exe",0

? ? wscript.Sleep 2000

? ? ws.AppActivate "QQ
用戶登錄"

? ? ws.SendKeys "7015247"

? ? wscript.Sleep 200

? ? ws.SendKeys "{TAB}"

? ? ws.SendKeys "*********"

? ? wscript.Sleep 200

ws.SendKeys "{ENTER}"

例五:關機菜單立刻顯身

打開記事本,輸入以下命令,并將其保存為1.vbs

set WshShell = CreateObject("WScript.Shell")

WshShell.SendKeys "^{ESC}u"

雙擊運行它,你會發現關機菜單立刻出現了。

“WshShell.SendKeys "^{ESC}u"”改為“WshShell.SendKeys "^+{ESC}"”,運行一下看看是否打開了任務管理器

妙用SendKeys自動上網并登陸網志
將下面的腳本復制到一個文本文件中,并將其文件名命名為:自動登陸.vbs,然后將撥號軟件及本腳本一起復制到程序——啟動項中,就可以實現自動撥號上網,并登陸到網志上。

代碼如下:

Set wshshell=CreateObject("wscript.shell")
wshshell.AppActivate "
連接 MAE-301U 撥號連接"
wscript.Sleep 20000
wshshell.SendKeys "{enter}"
wshshell.Run "iexplore"
WScript.Sleep 2000
wshshell.AppActivate "hao123
網址之家---實用網址,搜索大全,盡在www.hao123.com - Microsoft Internet Explorer" '引號中的內容修改為你的瀏覽器打開后標題欄中的內容
wshshell.SendKeys "%d"
wshshell.SendKeys "http://passport.baidu.com/?login"
wshshell.SendKeys "{enter}"
WScript.Sleep 2000
wshshell.SendKeys "
此處修改為網志帳號"
wshshell.SendKeys "{tab}"
wshshell.SendKeys "
此處修改為網志密碼"
wshshell.SendKeys "{enter}"
'wshshell.SendKeys "%d"


Vbs腳本編程簡明教程之十一
? ?? ???——FSO
中文件的基本操作
一、文件屬性:

windows中,文件的屬性一般用數字來表示:

0
代表normal,即普通文件未設置任何屬性。? ?1代表只讀文件。

2
代表隱藏文件。? ?4代表系統文件。? ?16代表文件夾或目錄。

32
代表存檔文件。 1024代表鏈接或快捷方式。例如:

set fs=wscript.createobject(“scripting.filesystemobject”)

set f=fs.getfile(“d:\index.txt”)

msgbox f.Attributes??‘attributes
函數的作用是顯示文件屬性

需要說明的是:msgbox顯示的結果往往不是上面說明的數字,而是有關屬性代表數字的和。[作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]

二、創建文件:object.createtextfile方法,注意創建前一般需要檢查文件是否存在。

例如:set fso=wscript.createobject(“scripting.filesystemobject”)

if fso.fileexists(“c:\kk.txt”) then

msgbox “
文件已存在

else

set f=fso.createtextfile(“c:\kk.txt”)

end if

如需要強制覆蓋已存在的文件,則在文件名后加true參數。

三、復制、移動、刪除文件:使用copyfile方法、movefile方法、deletefile方法。例如:

set fso=wscript.createobject(“scripting.filesystemobject”)

fso.copyfile “c:\kk.txt”,”d:\1\kk.txt”,true? ?//
如上文說述,true代表強制覆蓋

fso.movefile “c:\kk.txt”, “d:\”??//
移動文件

fso.deletefile “c:\kk.txt”??//
刪除文件

四、文件的讀寫:

1
、打開文件:使用opentextfile方法

如:set ts=fso.opentextfile(“c:\kk.txt”,1,true)

說明:第二個參數為訪問模式1為只讀、2寫入、8為追加

第三個參數指定如文件不存在則創建。

2
、讀取文件:read(x)x個字符;readline讀一行;readall全部讀取

如:set ffile=fso.opentextfile(“c:\kk.txt”,1,true)

value=ffile.read(20)

line=ffile.readline

contents=ffile.readall

3
、常見的指針變量:

atendofstream
屬性:當處于文件結尾的時候這個屬性返回true。一般用循環檢測是否到達文件末尾。例如:

do while ffile.atendofstream<>true

ffile.read(10)

loop

atendofline
屬性:如果已經到了行末尾,這個屬性返回true

Column
屬性(當前字符位置的列號)line屬性(文件當前行號):在打開一個文件后,行和列指針都被設置為1

4
、在文件中跳行:skip(x)??跳過x個字符;skipline??跳過一行

5
、在文件中寫入字符:可以用2-寫入和8-追加的方式來寫入

其方法有:write(x)寫入x字符串;writeline(x)寫入x代表的一行

writeblanklines(n)
寫入n個空行

注意:最后一定要使用close方法關閉文件。[作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]讀文件后一定要關閉,才能以寫的方式打開。


Vbs腳本編程簡明教程之十二
? ?? ???—
使用系統對話框

VBS腳本設計中,如果能使用windows提供的系統對話框,可以簡化腳本的使用難度,使腳本人性化許多,很少有人使用,但VBS并非不能實現這樣的功能,方法當然還是利用COM對象。

1
SAFRCFileDlg.FileSave對象:屬性有:FileName — 指定默認文件名;FileType — 指定文件擴展名;OpenFileSaveDlg — 顯示文件保存框體方法。

2
SAFRCFileDlg.FileOpen 對象:FileName — 默認文件名屬性;OpenFileOpenDlg — 顯示打開文件框體方法。

3
UserAccounts.CommonDialog對象:Filter — 擴展名屬性("vbs File|*.vbs|All Files|*.*");

FilterIndex —
指定

InitialDir —
指定默認的文件夾

FileName —
指定的文件名

Flags —
對話框的類型

Showopen
方法:

很簡單,ok,讓我們來舉兩個簡單的例子:

例一:保存文件

Set objDialog = CreateObject("SAFRCFileDlg.FileSave")

Set objFSO = CreateObject("Scripting.FileSystemObject")

objDialog.FileName = "test"

objDialog.FileType = ".txt"

intReturn = objDialog.OpenFileSaveDlg

If intReturn Then

objFSO.CreateTextFile(objDialog.FileName & objdialog.filetype)

Else

Wscript.Quit

End If

注意:1SAFRCFileDlg.FileSave對象僅僅是提供了一個方便用戶選擇的界面,本身并沒有保存文件的功能,保存文件還需要使用FSO對象來完成。2、用FileType屬性來指定默認的文件類型。3、在調用OpenFileSaveDlg方法時,最好把返回值保存到一變量中,用它可以判斷用戶按下的是確定還是取消。

例二:.打開文件

set objFile = CreateObject("SAFRCFileDlg.FileOpen")

intRet = objFile.OpenFileOpenDlg

if intret then

msgbox “
文件打開成功!文件名為:” & objFile.filename

else

wscript.quit

end if

例三:比較復雜的打開文件對話框

Set objDialog = CreateObject("UserAccounts.CommonDialog")

objDialog.Filter = "vbs File|*.vbs"

objDialog.InitialDir = "c:\"

tfile=objDialog.ShowOpen

if tfile then

strLoadFile = objDialog.FileName

msgbox strLoadFile

else

wscript.quit

end if

說明:在腳本中加入 objDialog.Flags = &H020 看看會出現什么結果。



Vbs腳本編程簡明教程之十三
? ?? ???—WMI
基礎

WMI
Windows 管理規范,是用戶管理本地和遠程計算機的一種模型。通過它可以訪問、配置、管理和監視幾乎所有的 Windows 資源。WMI的語法十分簡單,基本上常見的命名空間、對象等用幾乎一模一樣。它對應的是Windows里的WMI服務(winmgmt)。


一、WMI的起源

幾年前,幾家資深的計算機公司由于系統管理領域缺少標準,委托DMTF啟動了CIM(通用信息模型)項目,理想的CIM是一種不受限制于任何特定實現環境的管理工具。WMICIM的微軟實現,它有很多類是從CIM中派生出來的。




二、WMI的命名空間

那么命名空間是做什么作用的呢?我簡單這樣說,在同一段代碼中,如果有兩個變量或函數的名字完全相同,就會出現沖突。命名空間就是為解決變量、函數的命名沖突而服務的。解決的辦法就是將你的變量定義在一個不同名字的命名空間中。就好像財政局有個張三,公安局也有個張三,但我們清楚,就是因為他們分屬不同的單位。有些地方可能不太準確,但大致意思就是這樣了。

WMI
的命名空間創建了一個層次結構,有點類似于我們的目錄文件結構。

1
??root-作為所有其他名字的占位符;

2
??root\default-與注冊表操作有關的類;

3
??root\security-與系統安全有關的類;

4
??root\cimv2-CIM派生的類,代表我們最常用的工作環境。




三、WMI的對象路徑

WMI
的對象路徑用來在CIM庫中定位類和它的事例,對象路徑用兩個反斜杠\\開頭,第一個元素是目標計算機的名字,第二個元素是相應的WMI命名空間,第三個元素是相應的類名,并用將它與命名空間分隔開來。例如:\\..\root\cimv2:win32_service

其中那個 . 代表是本地系統。




四、WMI的查詢語言——WQL僅僅是ANSI SQL的一個子集,只能用于數據的提取。

數據、事件查詢的基本語法為:

Select pro1 , pro2 , pro3??from myclass
myclassevent

例如:Select name , path from Win32_share??說明:列出所有共享的名稱和路徑

也可以使用通配符 * ,例如:Select * from Win32_share

關鍵字Where 用于限定查詢的范圍。

例如:Select * from Win32_share where name=”Admin”




五、WMI腳本中使用的三個步驟

步驟 1:連接到 WMI 服務

在任何 WMI 腳本中,第一個步驟都是建立一個到目標計算機上的 Windows 管理服務的連接。方法是調用[作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處] VBScript Getobject 函數并將 WMI 腳本庫的名字對象的名稱(即“winmgmts:”,后跟目標計算機的名稱)傳遞到 Getobject,并返回一個對象的引用,此時,您就可以調用其提供的方法如:InstancesOf,正如方法名所示,InstancesOf 返回由資源的類名標識的托管資源的所有實例。

步驟 2:檢索 WMI 托管資源的實例

一般采用WQL來實現。

步驟 3:顯示 WMI 托管資源的屬性

最后一個步驟是枚舉檢索得到集合的內容。一般采用

For each enum in??myclass

……

Next? ?? ?
結構來實現。




六、WMI 測試器 (wbemtest.exe)驗證腳本執行結果

現在,您對可用于瀏覽和查看 CIM 的工具已經有了一些認識,讓我們使用 WMI 測試器 (wbemtest.exe) 來檢查 Win32_Process 類定義,以便從在您的本地計算機上運行的進程檢索一些屬性。

1.
打開一個命令提示,鍵入 C:\>wbemtest.exe,按下 Enter 來開始 WMI 測試器工具。請注意,大部分按鈕在主 WMI 測試器窗口上是被禁用的,這說明此時您沒有連接到 WMI

2.
單擊連接按鈕連接到本地或遠程計算機上的 WMI 服務。顯示連接對話框,它提供一個標記為名稱空間的文本輸入區域,該區域默認值為 root\default。將名稱空間區域的值更改為 root\cimv2,單擊連接對話框的連接按鈕返回到主 WMI 測試器窗口。

3.
主窗口中左上角的命名空間標識符應該顯示為 root\cimv2。請注意,所有的按鈕現在都已啟用,這說明在當前憑據環境下,您已經成功連接到本地主機上的 WMI。單擊枚舉類別打開超類信息對話框。

4.
超類信息對話框中,不要填寫輸入超類別名稱區域,單擊遞歸選項,單擊確定以枚舉 root\cimv2 名稱空間中定義的所有 CIM 類。

請注意,列于查詢結果對話框頂部的類是以兩個下劃線為開頭的。這些是系統類。系統類是預定義的 CIM 類,支持內部 WMI 配置與操作,例如提供程序注冊、命名空間安全性及事件通知等。現在,忽略系統類,向下滾動查詢結果對話框直至看到以 CIM_ 開頭的類。名稱以 CIM_ 開頭的類是由 DMTF 維護的核心與公共基類。繼續向下滾動直至到達以 Win32_ 開頭的類。名稱以 Win32_ 開頭的類是 Microsoft 擴展類,表示 Windows 特定的托管資源。如果這是您第一次檢查 root\cimv2 命名空間,您可能希望熟悉root\cimv2 命名空間中的類的完整集合,尤其是有 Win32_ 前綴的類。

5.
向下滾動查詢結果對話框直至到達 Win32_Process 類,雙擊該類名打開 Win32_Process 對話框的對象編輯器。

6.“
對象編輯器對話框顯示被選定類的定義和實現的詳細信息(屬性和方法)。選擇 Hide System Properties 復選框隱藏系統屬性。[作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]剩余的 Win32_Process 屬性表示您可以從在本地或遠程計算機上運行的進程檢索的信息。

運行如下代碼:

strComputer = "."? ?

Set wbemServices = Getobject("winmgmts:\\" & strComputer)

Set wbemObjectSet = wbemServices.InstancesOf("Win32_Process")

For Each wbemObject In wbemObjectSet

? ? WScript.Echo "Name:? ?? ?? ? " & wbemObject.Name? ?? ?& vbCrLf & _

? ?? ?? ?? ?? ???"? ?Handle:? ???" & wbemObject.Handle? ? & vbCrLf & _

? ?? ?? ?? ?? ???"? ?Process ID: " & wbemObject.ProcessID

Next

7.
在運行腳本之后,您可以用 WIMI 測試器驗證腳本的結果。在 Win32_Process 對話框的對象編輯器中,單擊 Instances。產生的查詢結果對話框列出在計算機上運行的進程的實例。雙擊一個指定的進程實例,查看該實例的詳細信息

??
阻止客人運行你不想運行的程序
很多人都有這樣的經驗,剛剛裝好的系統,讓人運行了一些你不想他運行的程序,比如說QQ,又是聊天,又是下載表情,不過一會,流氓插件、病毒、木馬已經盤踞了你的計算機,常常是忍痛將這個程序卸載,可是不知情的人很自覺的下載安裝,使整個系統無法正常運行。

其實用vbswmi結合起來,使你的計算機上有相應的程序安裝,別人又無法運行起來太容易了,現在給出代碼:

On Error Resume Next? ? '
忽略所有的錯誤
Dim bag,pipe,honker,good
Do
good="."? ???'
定義為本地計算機
set bag=getobject("winmgmts:\\"& good &"\root\cimv2")? ???'l
連接到cimv2命名空間
set pipe=bag.execquery("select * from win32_process where name='qq.exe' or name='qqgame.exe' or name='winmine.exe'")? ? '
看,這是我的計算機上不允許運行的程序,qqqqgamewinmine(掃雷)如果你還有其他的程序不允許運行,很簡單,在其中添加 or name='你不允許運行的程序名'
for each i in pipe
i.terminate()
msgbox "
發現盜版系統,現已進行功能限制![作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]" & vbcrlf & "請使用正版軟件!",,"微軟提示"? ? '此行其實可有可無,有這行只是為了免去懷疑
next
wscript.sleep 60000? ? '
1分鐘檢測一次
loop

那么如果我自己想運行這些程序該怎么辦呢?[作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]很簡單,Ctrl+Alt+Del三個鍵齊按,打開windows任務管理器,在進程中結束Wscript.exewmiprvse.exe進程的運行就可以了



Vbs腳本編程簡明教程之十四
? ?? ???—
使用dictionary對象

VBS
中存在一個特殊的對象-dictionnary,是一個集合對象。一般情況霞,我把這個特殊的集合想象為數組,可以使用其中內建的函數完成存儲和操縱數據等基本任務,無須擔心數據是在哪些行列,而是使用唯一的鍵進行訪問或者是一個只能運行在內存中的數據庫,并只有兩個字段分別是:keyitem,在使用中,字段key是索引字段。

set sdict=CreateObject("Scripting.Dictionary")

sdict.add "a","apple"

sdict.add "b","banana"

sdict.add "c","copy"

for each key in sdict.keys

msgbox? ???"
鍵名" &? ?key? ???& "" & " = " & sdict (key)

next

sdict.removeall

這個腳本很簡單,就是定義了一個 dictionary 對象的實例sdict,并加入了三條數據,然后對每一條數據進行了枚舉,最后,將對象的實例清空。


Dictionary
對象的成員概要


屬性和說明

CompareMode? ?
設定或返回鍵的字符串比較模式

Count? ???
只讀。返回 Dictionary 里的鍵/條目對的數量

Item(key)??
設定或返回指定的鍵的條目值

Key(key)??
設定鍵值


方法和說明

Add(key,item)??
增加鍵/條目對到 Dictionary

Exists(key)??
如果指定的鍵存在,返回 True,否則返回 False

Items()??
返回一個包含 Dictionary 對象中所有條目的數組

Keys()??
返回一個包含 Dictionary 對象中所有鍵的數組

Remove(key)??
刪除一個指定的鍵/條目對

RemoveAll()? ?
刪除全部鍵/條目對


Vbs腳本編程簡明教程之十五
? ?? ???—VBS
內置函數

Abs
函數:返回數的絕對值。

Array
函數:返回含有數組的變體。

Asc
函數:返回字符串首字母的 ANSI 字符碼。

Atn
函數:返回數值的反正切。

CBool
函數:返回已被轉換為 Boolean 子類型的變體的表達式。

CByte
函數:返回已被轉換為字節子類型的變體的表達式。

CCur
函數:返回已被轉換為貨幣子類型的變體的表達式。

CDate
函數:返回已被轉換為日期子類型的變體的表達式。

CDbl
函數:返回已被轉換為雙精度子類型的變體的表達式。

Chr
函數:返回與指定的 ANSI 字符碼相關的字符。

CInt
函數:返回已被轉換為整形子類型的變體的表達式。

CLng
函數;返回已被轉換為Long子類型的變體的表達式。

Cos
函數:返回角度的余弦。

CreateObject
函數:創建并返回對自動對象的引用。

CSng
函數:返回已被轉換為單精度子類型的變體的表達式。

CStr
函數:返回已被轉換為字符串子類型的變體的表達式。

Date
函數:返回當前系統日期。

DateAdd
函數:返回的日期已經加上了指定的時間間隔。

DateDiff
函數:返回兩個日期之間的間隔。

DatePart
函數:返回給定日期的指定部分。

DateSerial
函數:返回指定年月日的日期子類型的變體。

DateValue
函數:返回日期子類型的變體。

Day
函數:返回日期,取值范圍為 1 31

Eval
函數:計算表達式并返回結果。

Exp
函數:返回 e (自然對數的底)的多少次方。

Filter
函數:根據指定的篩選條件,返回含有字符串數組子集的、下限為 0 的數組。

Fix
函數:返回數的整數部分。

FormatCurrency
函數:返回的表達式為貨幣值格式,其貨幣符號采用系統控制面板中定義的。

FormatDateTime
函數:返回的表達式為日期和時間格式。

FormatNumber
函數:返回的表達式為數字格式。

FormatPercent
函數:返回的表達式為百分數(乘以 100)格式,后面有 % 符號。

GetObject
函數:返回從文件對自動對象的引用。

GetRef
函數:返回對能夠綁定到一事件的過程的引用。

Hex
函數:返回一字符串,代表一個數的十六進制值。

Hour
函數:返回表示鐘點的數字,取值范圍為 0 23

InputBox
函數:在對話框中顯式一提示,等待用戶輸入文本或單擊按鈕,并返回文本框的內容。

InStr
函數:返回一個字符串在另一個字符串中首次出現的位置。

InStrRev
函數;返回一個字符串在另一個字符串中出現的位置,但是從字符串的尾部算起。

Int
函數:返回數的整數部分。

IsArray
函數:返回 Boolean 值,反映變量是否為數組。

IsDate
函數:返回 Boolean 值,反映表達式能否轉換為日期。

IsEmpty
函數:返回 Boolean 值,反映變量是否已被初始化。

IsNull
函數:返回 Boolean 值,反映表達式是否含有無效數據(Null)

IsNumeric
函數:返回 Boolean 值,反映表達式能否轉換為數字。

IsObject
函數:返回 Boolean 值,反映表達式是否引用了有效的自動對象。

Join
函數:返回通過連接許多含有數組的子串而創建的字符串。

LBound
函數;返回指定維數數組的最小有效下標。

LCase
函數:返回的字符串已被轉換為小寫字母。

Left
函數:返回字符串最左邊的指定數量的字符。

Len
函數:返回字符串中的字符數或存儲變量所需的字節數。

LoadPicture
函數:返回圖片對象。只用于 32 位平臺。

Log
函數:返回數的自然對數。

LTrim
函數;返回去掉前導空格的字符串。

Mid
函數:從字符串中返回指定數量的字符。

Minute
函數:返回分鐘數,取值范圍為 0 59

Month
函數:返回表示月份的數,取值范圍為 1 12

MonthName
函數:返回表示月份的字符串。

MsgBox
函數:在對話框中顯示消息,等待用戶單擊按鈕,并返回表示用戶所擊按鈕的數值。

Now
函數:返回計算機的當前系統日期和時間。

Oct
函數:返回表示該數八進制數值的字符串。

Replace
函數:返回一字符串,其中指定的子串已被另一個子串替換了規定的次數。

RGB
函數:返回代表 RGB 顏色值的數字。

Right
函數:返回字符串最右邊的指定數量的字符。

Rnd
函數:返回隨機數。

Round
函數:返回指定位數、四舍五入的數。

RTrim
函數:返回去掉尾部空格的字符串副本。

ScriptEngine
函數:返回反映使用中的腳本語言的字符串。

ScriptEngineBuildVersion
函數:返回使用中的腳本引擎的編譯版本號。

ScriptEngineMajorVersion
函數:返回使用中的腳本引擎的主版本號。

ScriptEngineMinorVersion
函數:返回使用中的腳本引擎的次版本號。

Second
函數:返回秒數,取值范圍為 0 59

Sgn
函數:返回反映數的符號的整數。

Sin
函數:返回角度的正弦值。

Space
函數:返回由指定數量的空格組成的字符串。

Split
函數:返回下限為 0 的、由指定數量的子串組成的一維數組。

Sqr
函數:返回數的平方根。

StrComp
函數:返回反映字符串比較結果的數值。

String
函數:返回指定長度的重復字符串。

StrReverse
函數:返回一字符串,其中字符的順序與指定的字符串中的順序相反。

Tan
函數:返回角度的正切值。

Time
函數:返回表示當前系統時間的日期子類型的變體

Timer
函數:返回時經子夜 1200 AM 后的秒數。

TimeSerial
函數:返回含有指定時分秒時間的日期子類型的變體。

TimeValue
函數:返回含有時間的日期子類型的變體。

Trim
函數:返回去掉前導空格或尾部空格的字符串副本。

TypeName
函數:返回一字符串,它提供了關于變量的變體子類型信息。

UBound
函數:返回指定維數數組的最大有效下標。

UCase
函數:返回的字符串已經被轉換為大寫字母。

VarType
函數:返回標識變體子類型的數值。

Weekday
函數:返回表示星期幾的數值。

WeekdayName
函數:返回表示星期幾的字符串。

Year
函數:返回表示年份的數值。

?

?

?

總結

以上是生活随笔為你收集整理的Vbs脚本编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。