का उपयोग कर एक नई विंडोज रजिस्ट्री कुंजी बनाएं I C++ का उपयोग कर विंडोज रजिस्ट्री में एक नई रजिस्ट्री कुंजी बनाने की कोशिश कर रहा हूं।सी ++
HKEY hKey;
LPCTSTR sk = TEXT("SOFTWARE\\OtherTestSoftware");
LONG openRes = RegCreateKeyEx(
HKEY_LOCAL_MACHINE,
sk,
0,
NULL,
REG_OPTION_BACKUP_RESTORE,
KEY_ALL_ACCESS,
NULL,
&hKey,
NULL);
if (openRes==ERROR_SUCCESS) {
printf("Success creating key.");
} else {
printf("Error creating key.");
}
LPCTSTR value = TEXT("OtherTestSoftwareKey");
LPCTSTR data = "OtherTestData\0";
LONG setRes = RegSetValueEx (hKey, value, 0, REG_SZ, (LPBYTE)data, strlen(data)+1);
if (setRes == ERROR_SUCCESS) {
printf("Success writing to Registry.");
} else {
printf("Error writing to Registry.");
}
//RegDeleteKey(hKey, sk);
LONG closeOut = RegCloseKey(hKey);
if (closeOut == ERROR_SUCCESS) {
printf("Success closing key.");
} else {
printf("Error closing key.");
}
मैं सफलतापूर्वक एक बहुत समान कोड स्निपेट का उपयोग कर एक मौजूदा कुंजी खोलने में सक्षम हूँ (मूल रूप से RegOpenKeyEx साथ RegCreateKeyEx की जगह): यहाँ कोड मैं अब तक है। मैं कल्पना करूंगा कि RegCreateKeyEx में गुजरने वाले एक या अधिक तर्कों में समस्या आ रही है। मैं ईमानदारी से यह सुनिश्चित नहीं कर रहा हूं कि चीजें कहाँ हो रही हैं क्योंकि मैंने जो त्रुटि कोड फंस गए हैं, वे सफलता दिखाते हैं।
/*
* LONG WINAPI RegCreateKeyEx(
__in HKEY hKey,
__in LPCTSTR lpSubKey,
__reserved DWORD Reserved,
__in_opt LPTSTR lpClass,
__in DWORD dwOptions,
__in REGSAM samDesired,
__in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes,
__out PHKEY phkResult,
__out_opt LPDWORD lpdwDisposition
);
*/
किसी भी विचार बहुत अच्छा होगा: संदर्भ के लिए, RegCreateKeyEx के लिए समारोह हस्ताक्षर है!
धन्यवाद, ब्रायन
आपकी त्रुटि वास्तव में कहां होती है (मुझे RegCreateKeyEx() कॉल पर लगता है, लेकिन हमें अनुमान लगाने की आवश्यकता नहीं है), और GetLastError() वापस क्या करता है? –
क्या आप अभी जिस कुंजी को बनाया है उसे हटाने का प्रयास करना चाहते हैं? –
REG_OPTION_BACKUP_RESTORE के बजाय आपको REG_OPTION_NON_VOLATILE (= 0) पास करना होगा। आप एमएसडीएन http://msdn.microsoft.com/en-us/library/ms724844(VS.85).aspx – Ismael