วิธีการเขียนแบบ DWORD กับรีจิสทรี

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 258262 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

สรุป

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

ข้อมูลเพิ่มเติม

สิ่งสำคัญ: บทความนี้ประกอบด้วยข้อมูลเกี่ยวกับการปรับเปลี่ยนรีจิสทรี ก่อนที่จะแก้ไขรีจิสตรี คุณต้องสำรองข้อมูลนี้ไว้ และต้องทราบวิธีเรียกข้อมูลรีจิสตรีกลับคืน กรณีที่มีปัญหาเกิดขึ้น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีสำรอง คืนค่า และแก้ไขรีจิสทรี โปรดคลิกที่หมายเลขบทความต่อไปนี้ เพื่อดูบทความในฐานความรู้ของ Microsoft::
256986คำอธิบายสำหรับ Microsoft Windows Registry

คำเตือน: ถ้าคุณใช้ Registry Editor ไม่ถูกต้อง คุณอาจทำให้เกิดปัญหาร้ายแรงซึ่งอาจทำให้คุณติดตั้งระบบปฏิบัติการของคุณ ไมโครซอฟท์ไม่สามารถรับประกันว่า คุณจะสามารถแก้ปัญหาที่เกิดขึ้นจากการใช้ Registry Editor ไม่ถูกต้อง โปรดใช้ Registry Editor โดยยอมรับความเสี่ยงที่อาจเกิดขึ้น

ข้อมูลเกี่ยวกับตัวแก้ไขรีจิสทรีในบทความนี้ถูกใช้สำหรับ Microsoft Windows NT และ Microsoft Windows 2000 ถ้าคุณกำลังเรียกใช้ Microsoft Windows 9 X คุณจำเป็นต้องใช้ Regedit.exe แทน Regedt32.exe

หมายเหตุ::บทความนี้ใช้รีจิสทรีคีย์ที่ถูกสร้างขึ้นสำหรับวัตถุประสงค์ในการทดสอบเท่านั้น และควรถูกลบออกเมื่อเสร็จแล้ว ทดสอบ
  1. เริ่มการทำงานของโปรแกรม Registry Editor (Regedt32.exe)
  2. ค้นหาคีย์ต่อไปนี้ในรีจิสทรี:
       HKEY_LOCAL_MACHINE\Software
    					
  3. ในการแก้ไขเมนู คลิกเพิ่มคีย์แล้ว เพิ่มรีจิสทรีคีย์ต่อไปนี้:
       VfpREGTest
    					
  4. ในการแก้ไขเมนู คลิกเพิ่มค่าแล้ว เพิ่มค่ารีจิสทรีต่อไปนี้:
       Value Name: MyDWORD
       Data Type:  REG_DWORD
       Value:      0
    					
  5. ออกจาก'ตัวแก้ไขรีจิสทรี'
  6. จาก FoxPro Visual สร้างโปรแกรม และป้อนรหัสต่อไปนี้:
    #DEFINE HKEY_CLASSES_ROOT           -2147483648
    #DEFINE HKEY_CURRENT_USER           -2147483647
    #DEFINE HKEY_LOCAL_MACHINE          -2147483646
    #DEFINE HKEY_USERS                  -2147483645
    
    LOCAL nKey, cSubKey, cValue, nValueToWrite, lSuccess
    nKey = HKEY_LOCAL_MACHINE
    nValueToWrite = 1
    cSubKey = "Software\VfpREGTest"
    cValue = "MyDWORD"
    
    lSuccess = WriteRegDWORD(nKey, cSubKey, cValue, nValueToWrite)
    
    IF (lSuccess) THEN
       =MESSAGEBOX("Function Successful.")
    ELSE
       =MESSAGEBOX("Function Not Successful.")
    ENDIF
    
    FUNCTION WriteRegDWORD
       * This function writes a REG_DWORD to the registry. It will return .T.
       * if successful and .F. if it isn't successful.
       PARAMETERS  nKey, cSubKey, cValue,  nValueToWrite
       * nKey The root key to open. It can be any of the constants defined below.
       *#DEFINE HKEY_CLASSES_ROOT           -2147483648
       *#DEFINE HKEY_CURRENT_USER           -2147483647
       *#DEFINE HKEY_LOCAL_MACHINE          -2147483646
       *#DEFINE HKEY_USERS                  -2147483645
       *cSubKey The SubKey to open.
       *cValue The value that is going to be written.
       *nValueToWrite The value to write to the registry
    
       * Constants that are needed for Registry functions
       #DEFINE REG_DWORD   4
    
       * WIN 32 API functions that are used
       DECLARE Integer RegOpenKey IN Win32API ;
          Integer nHKey, String @cSubKey, Integer @nResult
       DECLARE Integer RegSetValueEx IN Win32API ;
          Integer hKey, String lpszValueName, Integer dwReserved,;
          Integer fdwType, String lpbData, Integer cbData
       DECLARE Integer RegCloseKey IN Win32API Integer nHKey
    
       * Local variables used
       LOCAL nErrCode          && Error Code returned from Registry functions
       LOCAL nKeyHandle        && Handle to Key that is opened in the Registry
       LOCAL lpdwValueType     && Type of Value that we are looking for.
       LOCAL lpbValue          && The data stored in the value
       LOCAL lpcbValueSize     && Size of the variable
       LOCAL lpdwReserved      && Reserved Must be 0
    
       * Initialize the variables
       nKeyHandle = 0
       lpdwReserved = 0           
       lpdwValueType = REG_DWORD
       lpcbValueSize = 4     && DWORD is 4 bytes
    
       lpbValue = LongToStr(nValueToWrite)
    
       nErrCode = RegOpenKey(nKey, cSubKey, @nKeyHandle)
       * If the error code isn't 0, then the key doesn't exist or can't be opened.
       IF (nErrCode # 0) THEN
          RETURN .F.
       ENDIF
    
       nErrCode=RegSetValueEx(nKeyHandle, cValue, lpdwReserved, lpdwValueType, lpbValue, lpcbValueSize)
       =RegCloseKey(nKeyHandle)
       IF (nErrCode # 0) THEN
          RETURN .F.
       ENDIF
    RETURN .T.
    
    FUNCTION LongToStr
    * This function converts a long to a string
       PARAMETERS nLongVal
       LOCAL nLoopVar, strReturn
    
       strReturn = ""
       FOR nLoopVar = 24 TO 0 STEP -8
          strReturn = CHR(INT(nLongVal/(2^nLoopVar))) + strReturn
          nLongVal = MOD(nLongVal, (2^nLoopVar))
       NEXT
    RETURN strReturn
    * End of Code
    					
  7. เรียกใช้รหัสสร้างขึ้นในขั้นตอนที่ 1 กล่องข้อความปรากฏในการประกาศสำเร็จหรือล้มเหลวของฟังก์ชัน คุณสามารถใช้ regedt32.exe เพื่อตรวจสอบว่า มีเขียนค่ารีจิสทรี
  8. คุณสามารถแทน nKey, cSubKey, cValue และ nValueToWrite ด้วยข้อมูลที่คุณจะสามารถเขียนไปยังรีจิสทรี
(c) Microsoft Corporation 2000 สิทธิ์ทั้งหมดที่สำรองไว้ contributions โดยทำเครื่องหมาย Barnard, Microsoft Corporation

ข้อมูลอ้างอิง


สำหรับข้อมูลเพิ่มเติมที่ได้รับค่าจากรีจิสทรี คลิกหมายเลขบทความด้านล่างนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
244675อย่างไรโฮสต์สคริปต์ ToUse Windows เพื่ออ่าน เขียน ลบรีจิสทรี

คุณสมบัติ

หมายเลขบทความ (Article ID): 258262 - รีวิวครั้งสุดท้าย: 8 มกราคม 2554 - Revision: 2.0
ใช้กับ
  • Microsoft Visual FoxPro 3.0 Standard Edition
  • Microsoft Visual FoxPro 5.0 Standard Edition
  • Microsoft Visual FoxPro 6.0 Professional Edition
Keywords: 
kbapi kbcodesnippet kbhowto kbregistry kbmt KB258262 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:258262

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com