ตัวอย่างสคริปต์ของรีจิสทรี

การเขียนสคริปต์ตัวอย่างในบทความนี้แสดงให้เห็นถึงวิธีการเพิ่มคีย์รีจิสทรีของระบบ เซิร์ฟเวอร์ COM ของนายทะเบียน การลงทะเบียน และระบุต้นไม้ในการแยกวิเคราะห์หลาย?

เพิ่มคีย์ HKEY_CURRENT_USER

ต้นไม้ในการแยกวิเคราะห์ดังต่อไปนี้แสดงให้เห็นถึงสคริปต์ง่าย ๆ ที่เพิ่มแป้นเดียวกับรีจิสทรีของระบบ โดยเฉพาะอย่างยิ่ง สคริปต์เพิ่มปุ่ม MyVeryOwnKey ถึง HKEY_CURRENT_USER กำหนดค่าสายอักขระเริ่มต้นของ HowGoesIt? คีย์ใหม่:

HKEY_CURRENT_USER
{
 nbsp 'MyVeryOwnKey' = s 'HowGoesIt
}(&N)

สคริปต์นี้สามารถขยายได้อย่างง่ายดายเพื่อกำหนดคีย์ย่อยหลายเป็นดังนี้:

HKCU
{
 nbsp 'MyVeryOwnKey' = s 'HowGoesIt
   {
      'HasASubkey'
      {
         'PrettyCool' = d '55'
         val 'ANameValue' = 'WithANamedValue' s
      }
   }
}(&N)

ขณะนี้ สคริปต์การเพิ่มคีย์ย่อย HasASubkey ถึง MyVeryOwnKey เพิ่มคีย์ย่อยนี้ จะลงทั้งสอง PrettyCool? คีย์ (พร้อมค่าDWORDเริ่มต้นของ 55) และ ANameValue ชื่อค่า (พร้อมค่าสายอักขระWithANamedValue)?

การลงทะเบียนเซิร์ฟเวอร์ COM นายทะเบียน

สคริปต์ต่อไปนี้ลงทะเบียนเซิร์ฟเวอร์ COM ของนายทะเบียนเอง?

HKCR
{
 nbsp ATL.นายทะเบียน = s ' ATL 2.0 ตัวลงทะเบียนคลาส
   {
      CLSID = '{44EC053A-400F-11D0-9DCD-00A0C90391D3 }' s
   }
   NoRemove CLSID
   {
      ForceRemove {44EC053A-400F-11D0-9DCD-00A0C90391D3 } =
                   s ' ATL 2.0 ตัวลงทะเบียนคลาส
      {
         ProgID = s ' ATL.นายทะเบียน '
         InprocServer32 = s '%โมดูล%'
         {
            val ThreadingModel = 'Apartment' s
         }
      }
   }
}(&N)

เวลาทำงาน เพิ่มแผนภูมินี้ในการแยกวิเคราะห์ ATL.Registrar คีย์การ HKEY_CLASSES_ROOT คีย์นี้ใหม่ ทีแล้ว:

เนื่องจาก CLSID เป็นการใช้ร่วมกัน มันจะไม่สามารถเอาออกในโหมด Unregister คำสั่ง NoRemove CLSID ทำงาน โดยการบ่งชี้ที่ CLSID ควรเปิดในโหมดที่ลงทะเบียน และละเว้นในโหมด Unregister?

การ ForceRemove คำสั่งให้ฟังก์ชัน housekeeping โดยการเอาคีย์และคีย์ย่อยของทั้งหมดก่อน recreating คีย์ นี้จะเป็นประโยชน์ถ้าชื่อของคีย์ย่อยที่มีการเปลี่ยนแปลง ในตัวอย่างนี้สคริปต์ ForceRemove ตรวจสอบเพื่อดูว่า {44EC053A-400F-11D0-9DCD-00A0C90391D3} มีอยู่แล้ว ถ้ามีForceRemove:

ในการแยกวิเคราะห์แผนภูมิจะเพิ่มคีย์ย่อยใหม่สองเพื่อ {44EC053A-400F-11D0-9DCD-00A0C90391D3} คีย์การแรก ProgID ได้รับเป็นค่าสายอักขระเริ่มต้นที่ ProgID ปุ่มที่สอง InprocServer32 ได้รับค่าสายอักขระเริ่มต้น %MODULE% นั่นคือค่า preprocessor อธิบายในส่วน การใช้ไส้พารามิเตอร์ (Preprocessor ของนายทะเบียนการ), ของบทความนี้ InprocServer32 ยัง ได้รับค่าชื่อ ThreadingModel ด้วยค่าสายอักขระของApartment?

ระบุต้นไม้ในการแยกวิเคราะห์หลาย

เพื่อระบุมากกว่า หนึ่งในการแยกวิเคราะห์แผนภูมิในสคริปต์ เพียงแค่วางแผนภูมิหนึ่งในตอนท้ายของอีก ตัวอย่างเช่น สคริปต์ต่อไปนี้เพิ่มปุ่ม MyVeryOwnKey กับต้นไม้ในการแยกวิเคราะห์สำหรับทั้ง HKEY_CLASSES_ROOT และHKEY_CURRENT_USER:

HKCR
{
 nbsp 'MyVeryOwnKey' = s 'HowGoesIt
}
HKEY_CURRENT_USER
{
   'MyVeryOwnKey' = s 'HowGoesIt
}(&N)

หมายเหตุnbsp  ในสคริปต์นายทะเบียน 4 K คือ ขนาดของโทเค็นสูงสุด (โทเค็นมีองค์ประกอบใดรู้จักในไวยากรณ์) ในตัวสคริปต์อย่างก่อนหน้า HKCR , HKEY_CURRENT_USER , 'MyVeryOwnKey' และ 'HowGoesIt?' มีโทเค็นที่ทั้งหมด(&N)?

Index