เขียนสคริปท์เพื่อแก้ไขรีจิสตรี้ ScriptRegistry

กระทู้สนทนา
วันนี้มาชวนทุกท่านเขียนสคริปท์ง่ายๆ สำหรับปรับแต่งรีจิสตรี้ของของวินโดวส์ เอ็กพี
เพื่อเพิ่มประสิทธิภาพในการใช้งานของคอมพิวเตอร์กันครับ
เพราะความยืดหยุ่นของการใช้งานสคริปท์นี้เอง จึงทำให้สามารถนำไปใช้งานได้หลายรูปแบบ
ทั้งในทางบวกและทางลบ ตอนนี้ เรามาหาประโยชน์จากมันในทางบวกกันนะครับนะ
แต่ก่อนอื่น เรามารู้จักรีจิสตรี้กันก่อนดีกว่า

รีจิสตรี้(Registry) คืออะไร

รีจิสตรี้ คือ ฐานข้อมูลส่วนหนึ่งในวินโดวส์ ที่ใช้สำหรับเก็บค่าทุกอย่างในวินโดวส์
และโปรแกรมทุกอย่างที่อยู่บนวินโดวส์ ทั้งซอฟท์แวร์ ฮาร์ดแวร์ รวมถึง User Setting ต่างๆ
ซึ่งรีจิสตรี้ ถือเป็นส่วนสำคัญมากของวินโดวส์เลยทีเดียว ซึ่งหากแก้ไขแล้วผิดพลาด อาจทำให้
เกิดความเสียหายร้ายแรงถึงขั้นเข้าวินโดวส์ไม่ได้เลยทีเดียว

หน้าตาของรีจิสตรี

http://www.pantip.com/tech/software/topic/SO2776561/image/SO2776561_15.jpg

วิธีเรียกใช้งาน Registry Editor
> Start > Run > พิมพ์ regedit แล้วกด OK หรือ Enter

http://www.pantip.com/tech/software/topic/SO2776561/image/SO2776561_17.jpg

ในรีจิสตรี้เอง ก็ยังได้แบ่งออกเป็นส่วนต่างๆเพื่อความยืดหยุ่นในการเรียกใช้งานของวินโดวส์
ซึ่งประกอบด้วย
-   รีจิสตรี้ฮีฟ(Registry Hive)
    เนื้อหา(Body of Keys)
    ซับคีย์(SubKeys)
    ค่ารีจิสตรี้และค่าเซ็ตติ้งต่างๆ ที่อยู่ในระบบ
-   รีจิสตรี้ดาต้า(Registry Data)

ชนิดของรีจิสตรี้

http://www.pantip.com/tech/software/topic/SO2776561/image/SO2776561_16.jpg

ในส่วนนี้ผมไม่กล่าวถึงรายละเอียดลึกๆนะครับ

เพื่อความปลอดภัย ก่อนทำการปรับแต่ง เรามาแบ็คอัพรีจิสตรี้ไว้กันก่อนดีกว่า

http://www.pantip.com/tech/software/topic/SO2776561/image/SO2776561_14.jpg

เลือกตำแหน่ง Save แล้วก็ตั้งชื่อที่ต้องการ แล้วก็กด Save ไปเลย ...

http://www.pantip.com/tech/software/topic/SO2776561/image/SO2776561_13.jpg

สคริปท์มีด้วยกันหลายรูปแบบ หลายนามสกุลไฟล์ วันนี้ เราจะใช้สคริปท์นามสกุลว่า .vbs

ถามว่า ทำไมต้องใช้สคริปท์
ก็เพราะว่า มันง่าย และสะดวกกว่า เพราะหาเรามีสคริปท์แล้ว เมื่อไดที่เราต้องการปรับเปลี่ยน
ก็เพียงแค่ดับเบิ้ลคลิกที่สคริปท์เท่านั้น ไม่ต้องเปิดไล่ตามหาไปทีละขั้นใน Registry Editor เสียเวลา
หรือแม้แต่เครื่องไหนที่โดนล็อคเอาไว้ ไม่ให้สามารถเข้า Registry Tools ได้หรือโดนไวรัสปิดไป
เราก็สามารถแก้รีจิสตรี้ได้ โดยใช้สคริปท์นั่นเองงงงง ...

ในที่นี้ ผมจะยกตัวอย่างคริปท์มาทำให้ดูสัก 2 ตัวนะครับ แล้วก็จะอธิบายบางส่วนของคริปท์ให้ได้ทราบกัน
โดยในการเขียนสคริปท์เพื่อแก้รีจิสตรี้นี้ ส่วนใหญ่จะสามารถใช้ฟอร์มเดียวกันได้ ดังนั้น ผมจึงจะยกมาเป็นตัวอย่าง
ให้ สัก 2 อัน หากต้องปรับแต่งในส่วนอื่น นอกเหนือจากตัวอย่างที่ยกมาให้ดู ทุกท่านก็สามารถแก้ไขเพียงเล็กน้อย
ก็จะสามารถใช้ได้แล้ว สะดวกดีมั้ย ^๐^/

ฟอร์มของสคริปท์นี้ผมขอมาจากคุณ augie นะครับ ซึ่งแต่ก่อนที่ผมทำไว้ มันจะโล่งเตียนมาก มีอยู่ 2-3 บรรทัด โต้ตอบไม่ได้อีก >.<
ดังนั้น จึงขอขอบคุณมา ณ ที่นี้ด้วยครับ

เอาหล่ะ เพื่อไม่เป็นการเสียเวลา เรามาเริ่มกันเลยดีกว่า
ตัวนี้เป็นสคริปท์ปิดการทำงานของ Registry Editor (เล่นง่ายๆ นี่แหละ ฮ่าฮ่าฮ่า)
หน้าตา รูปแบบ ฟอร์มของสคริปท์เป็นแบบนี้ครับ แล้วจะเรียกทำไมตั้งหลายอย่างเนี่ยยย ... (- -")

http://www.pantip.com/tech/software/topic/SO2776561/image/SO2776561_19.jpg

1. ชื่อสคริปท์นั่นเอง (กันลืม ฮ่าฮ่าฮ่า)
2. คำสั่งเปิดการโต้ตอบ
3. ช่องว่างเว้นบรรทัด - -*(ปกติจะเป็นการปิดคำสั่งน่ะ :P)
4. ในเครื่องหมาย " " จะไปแสดงบนกล่องตอบโต้ตามที่เราเขียนเอาไว้ในนั้น
5. เหมือน 4.
6. ปิดคำสั่ง
7. ที่ไตเติ้ลบาร์จะแสดงคำในเครื่องหมาย " "
8. ขนาด
9. ปิดคำสั่ง
10. เป็นการเปิดคำสั่งของสคริปท์ไฟล์ ในตัวอย่างผมให้ชื่อ Object นี้ว่า Zygote <เปลี่ยนได้แต่ต้องเหมือนกับบรรทัดที่ 11.>
11. เป็นคำสั่ง RegWrite เพื่อเปลี่ยนค่ารีจิสตรี้ที่ต้องการ รูปแบบคือ [ Object.Regwrite"ที่อยู่ของรีจิสตรี้",ค่าที่จะใส่,"ชนิดของคีย์รีจิสตรี้"]
12. ปิดคำสั่ง
13. เหมือน 5.
14. เหมือน 13. (อย่าหมั่นไส้ผมก่อนหละ -.-)

วิธีทำ ก๊อป text ข้างล่างนี้วางที่ notepad จากนั้นเซฟเป็นนามสกุล .vbs

สคริปท์ปิดการทำงาน Registry Tools

'Disable Registry Tools
Dim WSHShell, MyBox, Title

Message = "สคริปท์นี้จะทำการปิด Windows Registry Tools." & vbCr & vbCr
Message = Message & "คุณต้องการกระทำต่อหรือไม่?"

X = MsgBox(Message, vbYesNo + vbQuestion, "เร้าใจเกินพิกัด <www.pantip.com>")
If X = 6 Then

Set Zygote = WScript.CreateObject("WScript.Shell")
Zygote.RegWrite"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools",1,"REG_DWORD"

Title = "Windows Registry Tools ได้ถูกปิดลงแล้ว!" &vbCr &vbCr
Title = Title & "โดย เร้าใจเกินพิกัด"

*ในทางกลับกัน หากต้องการเปิดใช้งาน Registry Tools ก็แค่เปลี่ยนค่าในบรรทัดที่ 11. จากเลข 1 เป็นเลข 0 ก็เสร็จแล้วครับ

ฝากอีกตัวตามที่บอกไว้แต่ต้นแล้ว
ตัวนี้จะไม่อนุญาตให้โหลดไฟล์จากอินเตอร์เน็ตได้(IE) ซึ่งผมแค้นมากที่วันหนึ่งผมเข้าไปในร้านเน็ตแห่งหนึ่งกะว่าจะไปโหลดอะไรซักหน่อย
ปรากฏว่า โหลดอะไรไม่ได้เลย เล่นได้แต่เกม กดเข้าเข้ารีจิสตร้ก็ไม่ได้ ล็อกไว้อีก - -* นั่งได้ 10 นาที ด้วยความโมโห กลับมาห้องก๊อปเอาสคริปท์
ไปรันเลย อิอิ นั่งโหลดสบายใจ(เลวจริงๆ) แต่เสร็จแล้ว ผมก็ปิดให้คืนอยู่นะ เผื่อวันหลังผมไปโหลดอีกแล้วไม่ได้นั่งเครื่องเดิม จะได้ไม่มีใครแย่งผมโหลด(พูดเล่นน่ะครับ ฮ่าฮ่าฮ่า)

สคริปท์ปิดการดาวน์โหลดจาก IE

'Disable Download From IE
Dim WSHShell, MyBox, Title

Message = "สคริปท์นี้จะไม่อนุญาตให้ดาวน์โหลดไฟล์จาก Internet Explorer" & vbCr & vbCr
Message = Message & "คุณต้องการกระทำต่อหรือไม่?"

X = MsgBox(Message, vbYesNo + vbQuestion, "เร้าใจเกินพิกัด <www.pantip.com>")
If X = 6 Then

Set Zygote = WScript.CreateObject("WScript.Shell")
Zygote.RegWrite"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1803",3,"REG_DWORD"

Title = "ปิดการดาวน์โหลดไฟล์จาก Internet Explorer แล้ว!" &vbCr &vbCr
Title = Title & "โดย เร้าใจเกินพิกัด"

**ในทางกลับกัน หากต้องการเปิดให้ดาวน์โหลดได้ ก็แค่เปลี่ยนค่าในบรรทัดที่ 11. จากเลข 3 เป็นเลข 0 ก็เสร็จแล้วครับ
***ส่วนที่สำคัญที่สุดของสคริปท์ในฟอร์มนี้อยู่ในบรรทัดที่ 11. ซึ่งเป็นส่วนที่จะไปปรับเปลี่ยนในรีจิสตรี้ของเรา อย่าเขียนผิดล่ะ

ปล. ในการแก้ไขรีจิสตรี้บางตัว อาจจะต้องรีสตาร์ทเครื่องใหม่ก่อนนะครับ จึงจะเห็นผล

เพิ่มเติม
หากต้องการแก้ไขส่วนอื่นๆ ศึกษาได้จากบทความข้างล่าง ของคุณ augie ครับ แล้วลองปรับจาก .Reg มาเป็น .Vbs ในฟอร์มที่ผมให้ไว้ด้านบนดูครับ

http://www.pantip.com/tech/techblog/article.php?articleID=SO2730542

สำหรับบทความนี้ก็ขอจบเอาไว้แค่นี้
ท่านไดที่ทำในส่วนอื่นๆ เสร็จแล้ว ก็นำมาแบ่งปันกันบ้างนะครับ ^๐^
แก้ไขข้อความเมื่อ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่