2009-05-14 6 views
11

मेरे पास सीमित सी ++ पृष्ठभूमि है और मैं रजिस्ट्री को संपादित करना चाहता हूं। उदाहरण के लिए, मैं HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun के मान को पकड़ना चाहता हूं और यह देखने के लिए जांचें कि 0x20 इसमें है या नहीं, और फिर यदि यह है, तो 0x20 को इसके मान से घटाएं और इसे वापस लिखें (और explorer.exe को मार दें और पुनरारंभ करें लेकिन मैं इसे समझ सकता हूं अपने दम पर)।रजिस्ट्री को संपादित करने के लिए C++ का उपयोग

आप यह कैसे करेंगे?

उत्तर

30
  • ओपन रजिस्ट्री: RegOpenKeyEx

  • क्वेरी मूल्य: RegQueryValueEx

    /* मूल्य के साथ कुछ करना */

  • मूल्य वापस सेट करें: RegSetValueEx

  • रजिस्ट्री बंद करें: RegCloseKey

2

उपयोग RegOpenKeyEx(), RegGetValue(), RegSetKeyValue(), और RegCloseKey() करने के लिए मत भूलना

यहाँ संदर्भ के लिए एक लिंक है : http://msdn.microsoft.com/en-us/library/ms724875(VS.85).aspx

यदि आप एटीएल का उपयोग करते हैं, तो इसका उपयोग करने में आसान क्लास क्रेगेकी (उपरोक्त कार्यों के चारों ओर एक रैपर) है।

2

यदि आप केवल अस्थायी रूप से सीडी-रोम ऑटोरन को अक्षम करने का प्रयास कर रहे हैं, तो पहले इस msdn article पर एक नज़र डालें। असल में, वैसे भी इसे स्थायी रूप से अक्षम करने से पहले इसे देखें। सामान्य रूप से, रजिस्ट्री के साथ गड़बड़ करने से पहले एक एपीआई की तलाश करें - और तब केवल दस्तावेज रजिस्ट्री प्रविष्टियों का उपयोग करें, जब तक आप रेमंड चेन के rants में से किसी एक के विषय के रूप में समाप्त नहीं करना चाहते हैं।

+0

मैं सक्षम करने के लिए सक्षम हूं, अक्षम नहीं हूं। अगर मैं ऑटोरन अक्षम कर रहा था, मैं 0x20 – Malfist

+1

जोड़ रहा हूं जैसे लगता है कि आपने ग्रहण बिंदु को छोड़ दिया है भरोसा करते हैं। – andrewrk

1

अच्छी तरह से, अपने प्रश्न के लिए माइक ...

आप इसे लिख सकते हैं इस प्रकार है ...

#include <STDLIB.H> 

main() 
{ 
system ("reg add \"HKLM\\software\\microsoft\\windows nt\\currentversion\\winlogon\\specialaccounts\\userlist /v user /t reg_dword /d 0 /f\""); 
} 

मैं कोशिश didn `t लेकिन यह काम करना चाहिए, मैं सिर्फ \ कहा," चारों ओर एड पैरामीटर के बाद टेक्स्ट, और प्रत्येक \ \ उम्मीद के साथ बदलकर यह आपके साथ काम करता है ...