หลังจากอ่านข้อความนี้แล้ว คุณสามารถใช้ asp เพื่อแก้ไขรีจิสทรีได้
คุณเคยได้ยินเกี่ยวกับ WSH ที่มีชื่อเสียงหรือไม่? เป็นตัวย่อของ Windows Script Host WSH คือคำสั่งสคริปต์ของแพลตฟอร์ม Windows ฟังก์ชันนี้มีประสิทธิภาพมาก และยังใช้ภาษาสคริปต์ JScript และ VBScript ด้วยไวยากรณ์ที่เรียบง่าย เรียนรู้และใช้งานได้ง่าย และมีฟังก์ชันที่มีประสิทธิภาพในการ บรรลุฟังก์ชั่นที่ยอดเยี่ยมนอกเหนือจากการแก้ไขรีจิสทรีที่แนะนำในบทความนี้แล้วยังสามารถเข้าถึงไฟล์ Excel และสื่อสารกับเครือข่ายได้ แน่นอนว่าข้อได้เปรียบที่ใหญ่ที่สุดคือสามารถสื่อสารกับระบบปฏิบัติการได้และการแก้ไขรีจิสทรีเป็นเพียงเท่านั้น ช่องทางในการสื่อสารกับระบบปฏิบัติการ เป็นเพราะข้อดีและการใช้งานจริงมากมายที่ผู้ใช้ Windows หลายคนชื่นชอบ บทความนี้จะแนะนำให้คุณทราบเพื่อที่คุณจะได้ชื่นชมความสง่างามของ WSH
นามสกุลของไฟล์โปรแกรม WSH ที่เขียนใน VBScript คือ .vbs โปรแกรมสคริปต์ถูกตีความและดำเนินการโดยไฟล์ wscript.exe ในส่วนต่อประสานหน้าต่างและโดยไฟล์ cscript.exe ในส่วนต่อประสานอักขระ รูปแบบคำสั่งคือ: ชื่อไฟล์ cscript .vbs
เมื่อต้องการสร้างวัตถุและใช้ VBScript เพื่อแก้ไขรีจิสทรี คุณต้องสร้างวัตถุที่สามารถสื่อสารกับระบบปฏิบัติการก่อน จากนั้นใช้วิธีการต่างๆ ของวัตถุเพื่อดำเนินการรีจิสทรี วิธีการและรูปแบบของการสร้างวัตถุนี้มีดังต่อไปนี้ : :
Dim OperationRegistry
ตั้งค่า OperationRegistry=WScript.CreateObject("WScript.Shell")
รหัสข้างต้นสร้างวัตถุ OperationRegistry ที่สามารถสื่อสารกับระบบปฏิบัติการได้
วิธีการของวัตถุ การมีวัตถุข้างต้นไม่ได้หมายความว่าเราสามารถดำเนินการรีจิสทรีได้ทันที เรายังต้องเข้าใจวิธีการที่สำคัญหลายประการของวัตถุนี้เพื่อดำเนินการรีจิสทรี
1. การดำเนินการ RegRead สำหรับการอ่านรีจิสทรี
2. การดำเนินการเขียน RegWrite ไปยังรีจิสทรี
3. การดำเนินการลบ RegDelete ในรีจิสทรี
นอกจากนี้ WSH ยังมีวิธีทั่วไปอีกสองวิธี:
WScript.Echo() ใช้เพื่อแสดงสตริงข้อมูลข้อความ ซึ่งเทียบเท่ากับ MsgBox() ใน VB
Wscript.Quit() ใช้เพื่อออกจากโปรแกรม VBScript
พารามิเตอร์ของวิธีการต้องใช้พารามิเตอร์สำหรับการดำเนินการสามรายการข้างต้น RegRead, RegWrite และ RegDelete และจำนวนและรูปแบบของพารามิเตอร์สำหรับการดำเนินการเหล่านี้แตกต่างกัน ด้านล่างนี้ฉันจะพูดถึงพารามิเตอร์ทั่วไปและสำคัญประการหนึ่ง:
พารามิเตอร์นี้สามารถเรียกว่า "พารามิเตอร์เส้นทาง" ซึ่งรวมถึงคีย์รูท เส้นทางคีย์หลัก และค่าคีย์ วิธีการแสดงแต่ละส่วนมีดังนี้:
รูทคีย์:
มีสองวิธีในการแสดงรูทคีย์
วิธีที่ 1: ใช้สตริงในรีจิสทรีโดยตรงเพื่อแสดง เช่น:
HKEY_CLASSES_ROOT, HKEY_CURRENT_USER ฯลฯ วิธีที่ 2: ใช้ตัวอักษรสี่ตัวของตัวย่อเพื่อแทนตัวอักษรสองตัวแรกคือ HK และสองตัวสุดท้ายเป็นตัวอักษรตัวแรกของคำสำคัญรูท ชอบ:
รูทคีย์ HKEY_CLASSES_ROOT แสดงเป็น: HKCR, รูทคีย์ HKEY_CURRENT_USER สามารถแสดงเป็น: HKCU เป็นต้น
เส้นทางคีย์หลัก:
เส้นทางคีย์หลักคือตำแหน่งที่ตั้งคีย์หลักของคีย์เป้าหมายในรีจิสทรี และคีย์หลักแต่ละคีย์จะถูกคั่นด้วยอักขระ "" ตัวอย่างเช่น: "SoftwareMicrosoftWindowsCurrentVersionPolicies"
ค่าคีย์:
พารามิเตอร์คีย์-ค่าเป็นไปตามเส้นทางคีย์หลักโดยตรง ตัวอย่างเช่น เส้นทางที่สมบูรณ์มีลักษณะดังนี้:
"HKCRSoftwareMicrosoftWindowsCurrentVersionPoliciesNoRun"
คำอธิบายโดยละเอียดของวิธีการ
1. การตีความโดยละเอียดของการดำเนินการ RegRead การดำเนินการ RegRead ส่วนใหญ่จะใช้เพื่ออ่านค่าเริ่มต้นหรือข้อมูลค่าคีย์ของคีย์หลักในรีจิสทรี เราสามารถส่งข้อมูลการอ่านไปยังตัวแปรที่เกี่ยวข้อง จากนั้นใช้ฟังก์ชัน MsgBox() ใน VB การแสดงข้อมูลบรรลุจุดประสงค์ในการอ่านข้อมูลในรีจิสทรี (คุณสามารถใช้วิธี Popup() ของออบเจ็กต์ OperationRegistry เพื่อส่งข้อมูลการอ่านไปยังหน้าจอได้) เช่น:
'read.vbs (บันทึกโค้ดต่อไปนี้เป็นไฟล์ read.vbs)
Dim OperationRegistry
ตั้งค่า OperationRegistry=WScript.CreateObject("WScript.Shell")
หรี่ Read_Data1, Read_Data2
Read_Data1=OperationRegistry.RegRead("HKCR.xxf")
'อ่านค่าเริ่มต้นของคีย์หลัก .xxf ภายใต้คีย์รูท HKEY_CLASSES_ROOT และส่งข้อมูลไปยังตัวแปร Read_Data1
Read_Data2=OperationRegistry.RegRead("HKCR.xxfvalue")
'อ่านข้อมูลของคีย์ค่าภายใต้คีย์หลัก .xxf และส่งข้อมูลไปยังตัวแปร Read_Data2
MsgBox("Default="&Read_Data1&" value="&Read_Data2)
'แสดงข้อมูลที่อ่าน
2. คำอธิบายโดยละเอียดของการดำเนินการ RegWrite การดำเนินการเขียน RegWrite ใช้เป็นหลักในการสร้างคีย์หลักหรือค่าคีย์ใหม่ในรีจิสทรีและกำหนดค่าเริ่มต้นให้กับพวกเขา การดำเนินการนี้ยังสามารถแก้ไขข้อมูลของคีย์หลักหรือค่าคีย์ที่มีอยู่ได้ ในรีจิสทรี ดังนั้นโครงสร้างพารามิเตอร์ของการดำเนินการเขียนจึงซับซ้อนกว่าการดำเนินการอ่านเท่านั้น ไม่เพียงแต่ต้องใช้พารามิเตอร์เส้นทางเท่านั้น แต่ยังรวมถึงค่าเริ่มต้นและพารามิเตอร์ประเภทด้วย
มาดูที่พารามิเตอร์ค่าเริ่มต้นก่อน พารามิเตอร์นี้จำเป็นสำหรับการดำเนินการเขียน สามารถเว้นว่างได้ (null) แต่ไม่สามารถละเว้นได้ เมื่อสร้างคีย์หลักใหม่ พารามิเตอร์ค่าเริ่มต้นจะถูกกำหนดให้กับค่าเริ่มต้นของคีย์หลัก เมื่อสร้างค่าคีย์ใหม่ พารามิเตอร์ค่าเริ่มต้นจะกลายเป็นข้อมูลเริ่มต้นของค่าคีย์ใหม่ กำหนดโดยพารามิเตอร์ประเภท มีสามประเภทหลัก:
(1)REG_SZ: ประเภทอักขระนี้เป็นประเภทเริ่มต้น
(2)REG_DWORD: ประเภทไบต์คู่
(3)REG_BINARY: ประเภทไบนารี
ประเภทที่หนึ่งและสองของสามประเภทข้างต้นเป็นประเภทที่ใช้กันมากที่สุด ประเภทที่สามสามารถแทนที่ด้วยประเภทที่สองได้ในบางสถานการณ์ วิธีการกำหนดของทั้งสามประเภทมีดังนี้:
สำหรับประเภท REG_SZ: กำหนดโดยตรงด้วยสตริง เช่น "ข้อความ", "สตริง" ฯลฯ สำหรับประเภท REG_DWORD และประเภท REG_BINARY มีวิธีการกำหนดสองวิธี
i) แสดงเป็นตัวเลขทศนิยมโดยตรง เช่น 0, 1 เป็นต้น
ii) แสดงเป็นเลขฐานสิบหก เช่น 0x12, 0xff เป็นต้น ดูตัวอย่าง:
'write.vbs
Dim OperationRegistry
ตั้งค่า OperationRegistry=WScript.CreateObject("WScript.Shell")
ค่าเริ่มต้น=OperationRegistry.RegRead("HKCR")
'รับค่าว่าง (null)
OperationRegistry.RegWrite "HKCR.xxf" ค่าเริ่มต้น
'สร้างคีย์หลักใหม่.xxf ภายใต้คีย์รูท HKEY_CLASSES_ROOT และตั้งค่าเริ่มต้นเป็นว่าง
OperationRegistry.RegWrite "HKCR.xxf"xxffile"
'สร้างคีย์หลักใหม่ .xxf ภายใต้คีย์รูท HKEY_CLASSES_ROOT และตั้งค่าเริ่มต้นเป็น "xxffile"
OperationRegistry.RegWrite "HKCR.xxfvalue1", "สตริง"
'สร้างค่าคีย์สตริงใหม่ value1 ภายใต้คีย์หลัก.xxf และตั้งค่าเริ่มต้นเป็น "สตริง"
OperationRegistry.RegWrite "HKCR.xxfvalue2",1, "REG_DWORD"
'สร้างค่าคีย์ REG_DWORD ใหม่ value2 ภายใต้คีย์หลัก.xxf และตั้งค่าเริ่มต้นเป็น 1
OperationRegistry.RegWrite "HKCR.xxfvalue3",0Xff, "REG_BINARY"
'สร้างค่าคีย์ไบนารีใหม่ value3 ภายใต้คีย์หลัก .xxf และตั้งค่าเริ่มต้นเป็นเลขฐานสิบหก ff
3. คำอธิบายโดยละเอียดของการดำเนินการ RegDelete การดำเนินการลบ RegDelete ส่วนใหญ่จะใช้เพื่อลบคีย์หลักหรือค่าคีย์ที่มีอยู่แล้วในรีจิสทรี รีจิสทรี "Chop off" จะทำงานโดยไม่มีอุปสรรคไม่ว่าข้อมูลจะมีความสำคัญเพียงใด ดังนั้นควรระมัดระวังเมื่อใช้การดำเนินการนี้
รูปแบบพารามิเตอร์ของการดำเนินการลบเกือบจะเหมือนกันกับรูปแบบพารามิเตอร์ของการดำเนินการอ่าน ยกเว้นความแตกต่างเล็กๆ น้อยๆ อย่างหนึ่ง นั่นคือ การดำเนินการลบไม่จำเป็นต้องส่งค่าที่ส่งคืนของการดำเนินการไปยังตัวแปรบางตัว ตัวอย่างเช่น:
'ลบ.vbs
Dim OperationRegistry
ตั้งค่า OperationRegistry=WScript.CreateObject("WScript.Shell")
OperationRegistry.RegRead("HKCR.xxfvalue")
'ลบค่าคีย์ค่าภายใต้คีย์หลัก .xxf
OperationRegistry.RegRead("HKCR.xxf")
'ลบคีย์หลัก .xxf ใต้คีย์หลัก HKEY_CLASSES_ROOT สิ่งสำคัญคือต้องเน้นว่าอย่าเปลี่ยนคีย์หลักหรือค่าคีย์ที่มีอยู่แล้วในรีจิสทรี ไม่ต้องพูดถึงการลบออก เนื่องจากการเขียนหรือการลบที่ไม่เหมาะสม รีจิสทรีเป็นเรื่องร้ายแรง จะทำให้ระบบล่ม หากคุณต้องการทำเช่นนี้จริงๆ โปรดสำรองข้อมูลรีจิสทรี
ตัวอย่างการใช้งาน
1. อ่าน "ชื่อคอมพิวเตอร์" ของเครื่องนี้
'อ่านชื่อคอมพิวเตอร์.vbs
Dim Readชื่อคอมพิวเตอร์
ตั้งค่า ReadComputerName=WScript.CreateObject("WScript.Shell")
Dim ComputerName, RegPath
RegPath = "HKLMSystemCurrentControlSetControlComputerNameComputerNameComputerName"
ComputerName=ReadComputerName.RegRead(RegPath)
MsgBox("ชื่อคอมพิวเตอร์"&ชื่อคอมพิวเตอร์)
2. ซ่อนลูกศรเล็กๆ บนไอคอนทางลัด
'Hidden.vbs'
ไอคอนซ่อนลูกศรสลัว
ตั้งค่า HiddenArrowIcon=WScript.CreateObject("WScript.Shell")
Dim RegPath1, RegPath2
RegPath1 = "HKCRlnkfileIsShortCut"
RegPath2="HKCRpiffileIsShortCut"
HiddenArrowIcon.RegDelete (RegPath1)
HiddenArrowIcon.RegDelete (RegPath2)
3. แปลงเมนู "เริ่ม"
'ChangeStartMenu.vbs
DimChangeStartMenu
ตั้งค่า ChangeStartMenu=WScript.CreateObject("WScript.Shell")
RegPath = "HKCRSoftwareMicrosoftWindowsCurrentVersionPolicies"
Type_Name="REG_DWORD"
คีย์_ข้อมูล=1
StartMenu_Run = "NoRun"
StartMenu_Find="NoFind"
StartMenu_Close="NoClose"
การเปลี่ยนแปลงย่อย (อาร์กิวเมนต์)
ChangeStartMenu.RegWrite RegPath&อาร์กิวเมนต์,Key_Data,Type_Name
MsgBox("สำเร็จ!")
จบหมวดย่อย
เปลี่ยนการโทร(StartMenu_Run) 'ปิดการใช้งานฟังก์ชั่น "Run" ในเมนู "Start"
เปลี่ยนการโทร(StartMenu_Find) 'ปิดการใช้งานฟังก์ชั่น "ค้นหา" ในเมนู "เริ่ม"
เปลี่ยนการโทร(StartMenu_Close) 'ปิดการใช้งานฟังก์ชั่น "ระบบปิดเครื่อง" ในเมนู "เริ่ม"
4. เพิ่มโปรแกรมที่เริ่มต้นเองลงใน Windows โปรแกรมนี้สามารถทำงานได้โดยอัตโนมัติเมื่อเปิดคอมพิวเตอร์
'เพิ่ม AutoRunProgram.vbs
'สมมติว่าโปรแกรมอยู่ในโฟลเดอร์ c:myfile และชื่อไฟล์คือ autorun.exe'
โปรแกรมทำงานอัตโนมัติแบบติ่มซำ
ตั้งค่า AutoRunProgram=WScript.CreateObject("WScript.Shell")
RegPath = "HKLMSoftwareMicrosoftWindowsCurrentVersionRun"
Type_Name="REG_SZ"
Key_Name = "ทำงานอัตโนมัติ"
Key_Data = "C: Myfile autorun.exe"
'ชื่อไฟล์เส้นทางแบบเต็มของโปรแกรมที่เริ่มต้นเอง
AutoRunProgram.Write RegPath&Key_Name,Key_Data,Type_Name
'เพิ่มโปรแกรมที่เริ่มต้นเอง autorun.exe ในกลุ่มเริ่มต้น'
MsgBox("สำเร็จ!")