เมื่อคุณเปิดโปรแกรม Registry Editor ที่ Frame ด้านขวา สังเกตที่ Type colume คุณจะเห็นอักษรย่อลักษณะนี้ครับ REG_SZ, REG_BINARY, REG_DWORD, REG_QWORD, REG_MULTI_SZ, REG_EXPAND_SZ
Q : มันคืออะไร?
A : ขอตอบว่า มันคือเนื้อหาใน Page นี้หน่ะสิ.. !? (ตอบแบบนี้น่าจะสมนาคุณด้วย ขนมส้วนเตียน มาก) ....มันคือข้อมูลรูปแบบต่างของ Registry ครับ และ ถือเป็นเรื่องพื้นฐานสำคัญที่สุดเรื่องหนึ่งที่จำเป็นต้องรู้ ถ้าคุณคิดจะไปเล่นกับ Registry
Q : ถ้าไม่รู้เรื่องเลย แล้วเข้าไปแก้ไข หรือ ปรับแต่งให้ตรงตามสูตรเปะๆ แบบตาม Tip ใน Internet หรือ หนังสือมันผิดหรือ?
A : ก็มีทั้งผิด และถูกเพระว่า คนจะเขียนบทความเกี่ยวกับ Registry ส่วนใหญ่(ที่ไม่ใช่ทั้งหมด)ก็ต้องมีพื้นฐานในเรื่องที่ตนเขียนอยู่แล้ว แต่ผมอยากจะถามว่า : คุณจะหลับหูหลับตาเชื่อ หรือทำตามในเรื่องที่คุณไม่รู้จักที่มาที่ไปแบบง่ายๆ เพียงเพราะมันเป็นบทความจาก Internet หรือ มาจากหนังสืออย่างนั้นเลยหรือครับ? เข้าเนื้อหาดีกว่า(ขอเรียกสั้นๆว่า reg )
เปิดโปรแกรม Registry Editor
☻ พิมพ์ regedit ที่ช่อง Start Search(Vista, Win7), พิมพ์ regedit ที่ Start screen(win8)
☻ กดKey Windows + r จะขึ้น Dialogbox Run พิมพ์ regedit กด OK จะมี Pop-up ขึ้นมาถามยืนยันให้กดYes (XP,Vista,7,8) แต่ถ้าคุณต้องการรู้วิธีการเปิดที่มากกว่านี้ ผมเขียนรวมไว้ที่ Page1.
1. ที่ Column ด้านซ้ายเราเรียกว่า Key โดยหลักของ reg ในหนึ่ง Key จะต้องมีข้อมูลอย่างน้อย 1 ค่า ซึ่งโปรแกรมจะสร้างให้โดยอัตโนมัติทันทีเมื่อคุณสร้าง Key ขึ้นมาใหม่ และ ข้อมูลแรก(ค่า Default) ที่โปรแกรมสร้างให้นี้จะเป็นข้อมูลแบบ”สายประคำ” ว้าว!!..แปลเป็นภาษาไทยแล้วฟังดูขลังดีพิลึก...เราเรียกว่า “String Value” ครับ
* String : ในภาษา Computer หมายถึง สายอักขระ คือการนำอักษรหลายๆตัวมารวมกันเป็นข้อมูลยาวๆ
* ถ้าคุณอยากรู้ว่า ตอนนี้คุณได้เข้ามาถึง Rootkey ไหนให้ดูที่แถบ Status bar(เส้นใต้สีม่วง)
2. และ เมื่อคุณคลิกขวาที่คีย์ใดก็ตาม (หรือคลิกขวาที่ Column ด้านซ้ายก็ได้)จากนั้นเลือก New > .... ดูที่ Pic 1.ในกรอบสีส้ม
- ถ้าคุณเลือก New > Key ก็คือ สร้างคีย์ย่อยใหม่ถัดจากคีย์ที่คุณเลือก - ถ้าคุณเลือก ตัวอื่นก็จะเป็นการสร้างข้อมูล (Value)ประเภทต่างๆ ซึ่งข้อมูลใน reg ที่คุณจะพบเห็นมี 6 ประเภทครับ ตามนี้....
ข้อมูลแต่ละประเภทของ Registry
Note : ในเครื่องหมายวงเล็บ คือ อักษรย่อที่แสดงใน Type column ของหน้าต่าง Registry Editor เพื่อบอกให้เรารู้ว่า ข้อมูลนั้นๆเป็นข้อมูลแบบไหน
String Value(REG_SZ )
คือข้อมูลที่เป็นข้อความแบบทั่วๆไปที่สามารถอ่านและแปลได้ตามปกติ เช่น ข้อความที่แสดงในโปรแกรมต่างๆข้อมูลแบบนี้มีให้เราเห็นเยอะครับ คุณสามารถดู ตัวอย่าง ของการปรับแต่ง Reg String Value เพื่อนำมาใช้ประโยชน์ได้จาก Link ของบทความข้างล่างครับ
Binary Value (REG_BINARY)
เป็นข้อมูลแบบเลขฐาน2 แต่ในการตั้งค่า และ การแสดงผลบนหน้าต่าง Registry Editor(Data Column) จะเป็นเลขฐาน16(Hexadecimal) ประกอบไปด้วยตัวเลขกับตัวอักษร16ตัวคือ0123456789ABCDEF เราจะพบเห็นข้อมูลแบบ Binary ได้ในส่วนของการตั้งค่าต่างๆของโปรแกรม หรือการตั้งค่าของอุปกรณ์ Hardware มากกว่า ซึ่งถ้าคุณไม่มีความรู้ในส่วนนั้นจริงๆละก็ อย่ายุ่งจะดีกว่า แต่มันก็พอจะมีส่วนให้สังเกตได้อยู่นะว่าข้อมูล Binary นั้นๆมันคืออะไร เพราะในการตั้งค่าที่ช่อง Value data ของ Binary นั้น เราสามารถใส่ข้อมูลได้2แบบคือ (3.) ใส่ข้อมูลแบบข้อความธรรมดา [ ] หรือ ใส่ข้อมูลแบบตัวเลขฐาน16(Hexadecimal) [ ] เพื่อให้มองเห็นภาพได้ชัดเจนยิ่งขึ้นดูตัวอย่างจาก Pic 2. ครับ
1. ผมทดลองสร้าง Key ย่อยขึ้นมาที่ HKEY_CLASSES_ROOT\* จากนั้นตั้งชื่อเป็น MY_TEST(1.) จากนั้นที่ Column ด้านขวาของ Key MY_TEST ผมคลิกขวาเลือก New > Binary Value เพื่อสร้าง Binary value ขึ้นมาใหม่ และ ตั้งชื่อเป็น TEST BINARY (2.)
2. จากนั้นผม Double clickที่ Value TEST BINARY ก็จะมี Dialogbox Edit binary Value เปิดขึ้นมาให้ตั้งต่า(3.)
3. ในที่นี้ผมเลือกวิธีการสร้างข้อมูลแบบข้อความธรรมดา ขออธิบายเป็นส่วนๆไปนะครับ
: ข้อความธรรมดา ที่ผมใส่ลงไป 1บรรทัดสามารถป้อนตัวอักษรได้ 8ตัว และ การเว้นวรรค(Space) ในระบบของคอมพิวเตอร์ก็จะนับเป็น 1ตัวอักษรเช่นกัน
: ข้อมูลแบบเลขฐาน16(Hexadecimal) ที่โปรแกรมสร้างให้ อัตโนมัติ แต่ถ้าคุณเลือกตั้งค่าแบบเลขฐาน16(Hexadecimal) โปรแกรมจะสร้างข้อความให้เอง
: ที่ผมขีดเส้นใต้ในกรอบสีฟ้าเป็นจำนวนรวมของอักษรเมื่อป้อนมาถึงบรรทัดนั้นๆได้ครบ 8ตัวพอดี แต่เป็นการเขียนจำนวนแบบ ตัวเลขฐาน16(Hexadecimal) เลข 0 ข้างหน้าไม่มีความหมาย ถ้าคุณต้องการรู้จำนวนจริงของตัวอักษรที่เราใส่ลงไป ก็ต้องแปลงเลขฐาน 16ให้เป็นเลขฐาน 10(Decimal) ซะก่อน วิธีการคิดอย่างง่ายๆก็ดูจากตัวอย่างที่ผมขีดเส้นใต้สีส้มครับ วิธีการก็ตามนี้
- เปิดโปรแกรม Calculator ขึ้นมาจากนั้นคลิก View > Programmer(Alt+3) > ถ้าตามตัวอย่างของผม เมื่อผมใส่ข้อมูลมาถึงบรรทัดที่ผมขีดเส้นใต้ โปรแกรมจะขึ้นบรรทัดใหม่ที่ กรอบสีฟ้า เป็นตัวเลขฐาน 16=20 เมื่อผมใช้เครื่องคิดเลขแปลงจากเลขฐาน16(Hex)มาเป็นเลขฐาน10(Dec)ก็จะจำนวนตัวอักษรที่ผมพิมพ์มาถึง 8ตัวสุดท้ายของบรรทัดนั้นพอดี ซึ่งก็จะได้เป็น 32 ตัวอักษร
- บรรทัดสุดท้ายที่ผมพิมพ์ 00 ลงไปอีก 2ตัว ถึงแม้ที่กรอบสีฟ้าโปรแกรมจะขึ้นค่า Hex เป็น 28 รอไว้ก็ไม่ได้หมายความว่าจะมีตัวอักษรรวมกันทั้งหมด = 40 นะครับ เพราะในความหมายของโปรแกรมก็คือ ต้องพิมพ์ให้เต็มบรรทัดนี้ก่อนถึงจะ = 40 ตัวอักษร
DWORD (32-bit) Value(REG_DWORD)
(Pic 3.) ข้อมูลแบบ Double Word ในการแสดงค่าในหน้าต่าง Registry Editor(Data column) จะแสดงข้อมูลอยู่ 2 รูปแบบ คือแสดงข้อมูลแบบเลขฐาน16ก่อน โดยมี0x(ศูนย์X)นำหน้าตามด้วยเลขฐาน16(Hexadecimal) จำนวน8ตัว ในวงเล็บท้ายจะมีข้อมูลแบบเลขฐาน10 (Decimal)กำกับอีกที ส่วนใหญ่(ที่ไม่ได้แปลว่าทั้งหมด DWORD32bit Value มักจะเป็นข้อมูลในลักษณะบูลีน ( อ่านรายละเอียดด้านล่าง) เพื่อใช้ในการกำหนดสถานะ การทำงาน หรือตัดสินใจอย่างใดอย่างหนึ่ง เช่น ตั้งค่าเป็น 0 = ปิดการทำงาน หรือ ถ้าตั้งค่าเป็น 1= เปิดการทำงาน เป็นต้น แต่มันไม่ได้มีสูตรตายตัวแบบนี้ทั้งหมดนะ ทั้งนี้ขึ้นอยู่กับผู้ผลิต Software หรือผู้คิดค้นการตั้งค่านั้นๆ จะกำหนดว่าตัวเลขอะไรคือเปิด หรือ ตัวเลขอะไรคือ ปิด และ มันก็ไม่จำเป็นด้วยว่า DWORD (32-bit) Value จะต้องเป็นการตั้งค่าเป็น เปิด/ปิด, ใช้/ไม่ใช้เท่านั้น เพราะมันอาจจะเป็นการตั้งค่าให้โปรแกรมทำงานในแบบหลายๆสถานะการณ์ก็มี
เราสามารถเลือกป้อนข้อมูล DWORD ได้2แบบครับ โดยการเลือกที่ค่า Base(ฐาน) และ เนื่องจากมันถูกจำกัดขนาดไว้ที่32bitเราจึงสามารถป้อนข้อมูลแบบ Hexadecimal ได้สูงสุด8ตัว แต่ถ้าเลือกป้อนข้อมูลแบบDecimal จะป้อนได้ 10ตัว เหตุผลที่มันใส่ข้อมูลได้สูงสุดเพียง 8ตัว ก็เพราะว่า เลขฐาน16 หนึ่งตัวจะมีขนาดเท่ากับ4บิท เพราะฉนั้น DWORD 32bit ก็เท่ากับเอา32ตั้งหารด้วย4 ก็= 8 ตัวอักษร
*Boolean logic(ตรรกะแบบบูล): ตัวแปรที่มีการกำหนดค่าที่แน่นอนให้มีผลอย่างใดอย่างหนึ่งที่ชัดเจน เช่นการกำหนดให้เป็น"จริง" (True) หรือ " ไม่จริง "(False) ใช้มากในการเขียนโปรแกรม เป็นหลักพิชคณิต ที่ตั้งตามชื่อของผู้คิดค้น คือยอร์ช บูล (George Boole)
|
QWORD (64-bit) Value (REG_QWORD)
ข้อมูลแบบ Quad Word (ควอดเวิร์ด)ในการสร้างข้อมูล รวมไปถึงการแสดงผลบนหน้าต่าง Registry Editor จะมีลักษณะเหมือน กับ DWORD Value แต่จะแตกต่างตรงที่ QWORD Value จะสามารถใส่ข้อมูลได้มากเป็น1เท่าตัวของข้อมูล DWORD (เพราะมันเป็น 64bit ไง) กล่าวคือถ้าเลือกค่า Base เป็น Hexadecimal จะใส่ข้อมูลได้ 16ตัว และ ถ้าเลือก Base เป็น Decimal(ฐาน10)จะใส่ข้อมูลได้ 20ตัว
Multi String Value(REG_MULTI_SZ)
เป็นข้อมูลตัวอักษรแบบ String Value ครับ แตกต่างกันตรงที่ Multi String Value สามารถใส่ข้อความได้หลายบรรทัดเท่านั้นเอง การแสดงผลบนหน้าต่าง Registry Editor จะแสดงเป็นบรรทัดเดียวกันหมด แต่เวลานำไปใช้งานจริง จะขึ้นอยู่ที่ตัวโปรแกรม จะแยกตามจำนวนบรรทัดที่ตั้งค่าไว้เอง
Expandable String Value(REG_EXPAND_SZ )
เป็นข้อมูลตัวอักษรแบบเดียวกับ String Value แต่ ที่แตกต่างก็คือ ใช้เก็บข้อมูลตัวแปรของระบบเพื่อให้ระบบอ่านแล้วตีค่าได้ ตัวอย่างเช่น%systemroot% หรือ %username% ,ฯลฯ ดูตัวอย่างที่(Pic 6.)
* CLSID(Class Identifier)*
เนื้อหาตรงนี้อาจไม่เกี่ยวข้องโดยตรงกับ Expandable String Value แต่ผมเขียนขึ้นมาเพื่อขยายความ ในเรื่องของ CLSID จาก Page 1. ครับ
- จาก Root key ในตัวอย่าง Pic 6.(HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}) ตรงนี้เป็น(Class Identifier) ที่เชื่อมโยงไปยังการตั้งค่าต่างๆของ Computer และ ถ้าคุณอยากรู้ว่า CLSID ตัวไหนเชื่อมโยง ไปยัง Object อะไร หรือ เป็นของโปรแกรมไหน ให้คุณดูที่ REG_SZ ที่ชื่อ Default ครับ
- ขยายความ ทุกอย่าง,ทุกคำสั่ง,ทุกเมนูที่อยู่ในระบบวินโดว์ไม่ว่าจะเป็นComputer ,Home Group, Folder,ฯลฯ เราเรียกรวมๆว่า Object (วัตถุ,เป้าหมาย) ใน Registry อ็อบเจ็คทต่างๆจะแทนค่าด้วย CLSID
- ชุดตัวเลขในวงเลบปีกกา{Braces} เป็นชุดตัวเลขระบบสุ่มขนาด 128 bits ของ Microsoft ที่สร้างมาจาก GUID(Globally Unique Identifier)
การใช้งานแท็บเมนูคำสั่งต่างๆของ Registry Editor และ Keyboard Shortcut ที่น่าสนใจ Read More
|