国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

用VBScript實現對Windows注冊表的修改

2024-07-21 02:20:34
字體:
來源:轉載
供稿:網友
  • 本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。
  • 大名鼎鼎的wsh聽說過嗎? 它就是windows script host的縮寫形式,wsh是windows平臺的腳本指令,它的功能十分強大,并且它還是利用語法結構簡單、易學易用且功能強大的jscript和vbscript腳本語言,來實現其卓越的功能的,除了本文介紹的修改注冊表之外,它還可以訪問excel文件,也能與網絡溝通,當然它最大的優勢莫過于它能與操作系統溝通,而修改注冊表只是它與操作系統溝通的冰山一角。正是它有如此諸多的優點與實用性,正倍受很多windows用戶的青睞,本文就為大家介紹一二,讓各位領略一下wsh的風采。
    用vbscript編寫的wsh程序文件的擴展名為.vbs,該腳本程序在窗口界面是由wscript.exe文件解釋執行的,在字符界面是由cscript.exe文件解釋執行的,命令格式為:cscript filename.vbs
     
    創建對象
    用vbscript修改注冊表,必須先創建一個能于操作系統溝通的對象,再利用該對象的各種方法對注冊表進行操作,創建這個對象的方法和格式如下:
    dim operationregistry
    set operationregistry=wscript.createobject("wscript.shell")
    上述這些代碼就創建了一個能與操作系統溝通的對象operationregistry
     
    對象的方法
    有了以上這個對象,并不等于就能馬上對注冊表進行操作,我們還必須弄清該對象對注冊表進行操作的幾種重要方法.
    1.對注冊表的讀操作regread
    2.對注冊表的寫操作regwrite
    3.對注冊表的刪操作regdelete
    補充一點,wsh還有兩個通用的方法:
    wscript.echo()用來顯示一串文本信息,相當于vb中的msgbox()。
    wscript.quit()用來退出vbscript程序。
     
    方法的參數
    對于以上三種操作regread,regwrite,regdelete都需要帶參數進行,并且這些操作的參數的個數和形式又不盡相同,下面我就把它們的一個共同且必不可少的參數講一下:
    該參數可稱作是"路徑參數",它包括根鍵,主鍵路徑和鍵值,各部分表示的方法如下:
    根鍵:
    根鍵有兩種表示方法。
    方法一:直接用它在注冊表中的字符串來表示,如:
    hkey_classes_root,hkey_current_user等
    方法二:用縮寫的四個字母來表示,前兩個為hk,后兩個即為根鍵單詞的首字母。如:
    根鍵hkey_classes_root表示為:hkcr, 根鍵hkey_current_user可表示為:hkcu等。
    主鍵路徑:
    主鍵路徑就是目標鍵在注冊表中的主鍵位置,各個主鍵之間用"/"符分隔開。如:"software/microsoft/windows/currentversion/policies/"
    鍵值:
    鍵值參數直接接在主鍵路徑之后。例如一個完整的路徑如下所示:
    "hkcr/software/microsoft/windows/currentversion/policies/norun"
     
    方法詳解
    1、regread操作詳解
    讀操作regread主要是用來讀取注冊表中主鍵的默認值或鍵值的數據,我們可以將讀得的數據送到相應的變量中,再利用vb中的msgbox()函數將該數據顯示出來,這就達到了讀取注冊表中數據的目的(也可以利用對象operationregistry的方法popup()將讀取的數據送至屏幕), 例如:
    `read.vbs(將以下代碼存為read.vbs文件)
    dim operationregistry
    set operationregistry=wscript.createobject("wscript.shell")
    dim read_data1,read_data2
    read_data1=operationregistry.regread("hkcr/.xxf/")
    `讀取根鍵hkey_classes_root之下的.xxf主鍵的默認值,并將該數據送至變量read_data1
    read_data2=operationregistry.regread("hkcr/.xxf/value")
    `讀取.xxf主鍵之下的value鍵值的數據,并將該數據送至變量read_data2
    msgbox("default="&read_data1&" value="&read_data2)
    `將讀取的數據顯示出來
    2、regwrite操作詳解
    寫操作regwrite主要是用來在注冊表中新建主鍵或鍵值,并要賦予給它們一個初始值,該操作同樣可以對注冊表中以存在的主鍵或鍵值進行數據的修改,因此寫操作的參數結構就比讀操作要復雜一些,它不僅要路徑參數,還要一個初始值和類型參數.
    先來看初始值參數,該參數對于寫操作來說是必不可少的,它可以為空(null)但卻不能省掉。在新建主鍵時,初始值參數就賦給了該主鍵的默認值,在新建鍵值時,初始值參數就成了新建鍵值的初始數據.而初始值的類型,則是由類型參數決定的.類型主要有以下三種:
    (1)reg_sz:字符型.該類型為缺省類型
    (2)reg_dword:雙字節型.
    (3)reg_binary:二進制型.
    以上三種類型第1種和第2種用得最多,第3種類型在某些場合可以用第2種加以替代,這三種類型的賦值方法如下:
    對于reg_sz型:直接用字符串賦予,如"text","string"等
    對于reg_dword型和reg_binary型則有兩種賦值方式
    i)直接用十進制的數表示,如:0,1等.
    ii)用十六進制的數表示,如:0x12,0xff等. 看例:
    `write.vbs
    dim operationregistry
    set operationregistry=wscript.createobject("wscript.shell")
    default=operationregistry.regread("hkcr/")
    `獲取一個空值 (null)
     
    operationregistry.regwrite "hkcr/.xxf/",default
    `在根鍵hkey_classes_root之下新建主鍵.xxf,并置其默認值為空
     
    operationregistry.regwrite "hkcr/.xxf/","xxffile"
    `在根鍵hkey_classes_root之下新建主鍵.xxf,并置其默認值為"xxffile"
     
    operationregistry.regwrite "hkcr/.xxf/value1","string"
    `在主鍵.xxf之下新建一個字符串型鍵值value1,并置其初始值為"string"
     
    operationregistry.regwrite "hkcr/.xxf/value2",1,"reg_dword"
    `在主鍵.xxf之下新建一個reg_dword型鍵值value2,并置其初始值為1
     
    operationregistry.regwrite "hkcr/.xxf/value3",0xff,"reg_binary"
    `在主鍵.xxf之下新建一個二進制型鍵值value3,并置其初始值為十六進制的ff
     
    3、regdelete操作詳解
    刪除操作regdelete主要是用來刪除注冊表中已存在的主鍵或鍵值,該操作是一種極其危險的操作,它能將主鍵或鍵值毫不留情的在注冊表中“砍掉”,無論該鍵值下面有多重要的數據,它都能暢行無阻,因此在使用該操作時務必小心。
    刪除操作的參數形式與讀操作的參數形式幾乎完全相同,只是有一點小小的區別,那就是刪除操作不需要將操作的返回值送給某一變量,例如:
    `delete.vbs
    dim operationregistry
    set operationregistry=wscript.createobject("wscript.shell")
    operationregistry.regread("hkcr/.xxf/value")
    `刪除.xxf主鍵之下的value鍵值
    operationregistry.regread("hkcr/.xxf/")
    `刪除根鍵hkey_classes_root之下的.xxf主鍵
    強調一點,不要更改注冊表中已存在的主鍵或鍵值,更不要將它們刪除,因為對注冊表進行了不當的寫操作或刪操作,情況嚴重的會導致系統崩潰!如果你真想這么做,那就請你作好注冊表的備份。
     
    應用實例
    1、讀本機“計算機名”
    `readcomputername.vbs
    dim readcomputername
    set readcomputername=wscript.createobject("wscript.shell")
    dim computername,regpath
    regpath="hklm/system/currentcontrolset/control/computername/computername/computername"
    computername=readcomputername.regread(regpath)
    msgbox("計算機名為"&computername)
    2、隱藏快捷方式圖標上的小箭頭
    `hidden.vbs
    dim hiddenarrowicon
    set hiddenarrowicon=wscript.createobject("wscript.shell")
    dim regpath1,regpath2
    regpath1="hkcr/lnkfile/isshortcut"
    regpath2="hkcr/piffile/isshortcut"
    hiddenarrowicon.regdelete(regpath1)
    hiddenarrowicon.regdelete(regpath2)
    3、改造“開始”菜單
    `changestartmenu.vbs
    dim changestartmenu
    set changestartmenu=wscript.createobject("wscript.shell")
    regpath="hkcr/software/microsoft/windows/currentversion/policies/"
    type_name="reg_dword"
    key_data=1
     
    startmenu_run="norun"
    startmenu_find="nofind"
    startmenu_close="noclose"
     
    sub change(argument)
    changestartmenu.regwrite regpath&argument,key_data,type_name
    msgbox("success!")
    end sub
     
    call change(startmenu_run) `禁用“開始”菜單中的“運行”功能
    call change(startmenu_find) `禁用“開始”菜單中的“查找”功能
    call change(startmenu_close) `禁用“開始”菜單中的“關閉系統”功能
    4、向windows中添加自啟動程序
    該程序能在開機時自動運行。
    `addautorunprogram.vbs
    `假設該程序在c:/myfile文件夾中,文件名為autorun.exe
    dim autorunprogram
    set autorunprogram=wscript.createobject("wscript.shell")
    regpath="hklm/software/microsoft/windows/currentversion/run/"
    type_name="reg_sz"
    key_name="autorun"
    key_data="c:/myfile/autorun.exe"
    `該自啟動程序的全路徑文件名
    autorunprogram.write regpath&key_name,key_data,type_name
    `在啟動組中添加自啟動程序autorun.exe
    msgbox("success!")
    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 广饶县| 阜平县| 绥德县| 德昌县| 锡林郭勒盟| 马鞍山市| 荣昌县| 呼伦贝尔市| 新竹县| 伊金霍洛旗| 宁德市| 济南市| 若羌县| 洛南县| 图片| 南平市| 肃南| 三江| 余姚市| 仙游县| 广河县| 马山县| 庄河市| 酒泉市| 古蔺县| 延边| 旌德县| 汕尾市| 宣化县| 武宁县| 宿迁市| 赣榆县| 海伦市| 晋中市| 温宿县| 伊吾县| 银川市| 东城区| 老河口市| 保定市| 阳城县|