ในการเรียกใช้ข้อมูลที่ถูกบันทึกอยู่ในรีจิสทรี แน่นอนว่าเราต้องมีการเรียกใช้โมดูลเฉพาะ ซึ่งโมดูลตัวนั้นก็คือ winreg โดยโมดูลนี้จะให้การเข้าถึง Windows Registry จะมีฟังก์ชันให้เลือกใช้ในการเข้าถึงรีจิสทรีอย่างมากมาย แต่ในบทความนี้จะสอนวิธีการดึงค่าจากรีจิสทรี ด้วยภาษาPython (ไพธอน)
- ให้ทำการติดตั้ง module winreg
- เมื่อติดตั้งเเล้วให้ทำการเรียกใช้ winreg โดยการ import winreg
- สร้างตัวแปรเพื่อใช้ในการเก็บข้อมูลที่ตัวแปร registry (จะได้เป็นค่าดิบ) โดยใช้ฟังชัน openkey เพื่อเปิดค่าที่บันทึกในรีจิสทรีตามที่ระบุจากพาทที่อยู่ในนั้น โดยรูปแบบของการระบุพาร์ท ต้องมี HIVES, Keys, Subkeys ดังตัวอย่าง
ตัวอย่าง code
import winreg
registry=winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,"Software\\Classes\\Applications\\SupportedTypes")
- เมื่อสามารถเข้าถึงได้แล้ว ให้ทำการสร้างตัวแปรเพื่อรับค่าที่อยู่ในรีจิสทรี โดยใช้ฟังก์ชัน EnamValue ในการระบุค่าของคีย์รีจิสทรีที่เปิดอยู่ โดยฟังก์ชันจะดึงข้อมูลในโครงสร้างที่อยู่ในส่วนของ Valus ซึ่งจะเก็บเฉพาะค่า name, type, และ data (กำหนดค่ารีจิสทรีในอินเด็กที่ 0) แล้วให้ทำการแสดงค่าของตัวแปร value (ค่า Data ในรีจิสทรี)
name,value,type = winreg.EnumValue(registry,0)
print (value)
5.เมื่อดึงค่าเรียบร้อยแล้วจะได้ผลลัพธ์ดังรูป
จะเห็นได้ว่าเพียงเเค่เราเลือกใช้ฟังก์ชันบางฟังก์ชันในโมดูล winreg เพียงไม่กี่ฟังก์ชันก็สามารถที่จะดึงข้อมูลที่อยู่ในรีจิสทรีออกมาได้เเล้ว อย่างไรก็ตาม ฟังก์ชันในโมดูล winreg ไม่ได้มีเพียงเท่านี้ เเต่ยังมีอีกหลากหลายฟังชันให้ได้ทดลองใช้ตามกรณี เพื่อใช้เพิ่มศักยภาพในการทำงานร่วมกันของโปรแกรมที่เราสร้างขึ้นมาให้ดียิ่งขี้น
อ้างอิง :
winreg — Windows registry access,[ออนไลน์],ศึกษาเพิ่มเติมได้ที่
https://docs.python.org/3/library/winreg.html#
อ่าน/เขียน Registry ด้วยภาษา C#,[ออนไลน์],ศึกษาเพิ่มเติมได้ที่
https://naiwaen.debuggingsoft.com/series/c-sharp-read-write-regisrty/
Python and reading registry keys.,[ออนไลน์],ศึกษาเพิ่มเติมได้ที่
https://www.reddit.com/r/learnpython/comments/2uwrne/python_and_reading_registry_keys/