Registry



  • Hallo,
    ich möchte ein Programm schreiben wo ich mit einem Button/Menü ein Registryeintrag leeren kann in VC++ .NET
    Kann jemand mir helfen? Am besten den Quelltext für das Button/Menu

    Danke sehr im voraus

    Maximo



  • HKEY hKey;
    
    if (RegOpenKey(HKEY_CURRENT_USER,NULL,&hKEy) == ERROR_SUCCESS) {
    	RegDeleteKey(hKey,"Console"),RegCloseKey(hKey);
    }
    


  • super!
    nur hab gleich 2 fragen:
    1.wenn ich den Eintrag:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    leeren will muss ich dann diesen statt HKEY_CURRENT_USER eingeben?

    2. wie mach ich das damit ich einen Schlüssel übers Programm ändern kann?
    Z.B. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    Schlüssel: nwiz

    Ich weiss ich brauch dann ein Eingabefeld, mehr weiss ich aber nicht 😞

    Kann mir da jemand helfen?
    das Thema hat mich immer interessiert, weil wenn man manche Einträge leeren/ändern will muss man immer manuel leeren/ändern

    Vielen Dank im voraus

    Maximo



  • maximo schrieb:

    1.wenn ich den Eintrag:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    leeren will muss ich dann diesen statt HKEY_CURRENT_USER eingeben?

    als ersten Parameter übergibts du HKEY_LOCAL_MACHINE und für den Subkey "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run". Ansonsten schau dir mein Beispiel an. Die Daten werden einfach über zwei Schleifen eingelesen und in szBuffer bzw szValueName gespeichert, vielleicht hilft dir es weiter:

    char szBuffer[255], szValueName[255];
    int nResult, nValue;
    
    HKEY hKey, hTempKey;
    DWORD dwValueSize = sizeof(szBuffer), dwValue;
    
    if (::RegOpenKeyEx(HKEY_CURRENT_USER,"AppEvents\\Schemes\\Apps",0,KEY_ALL_ACCESS,&hKey) == ERROR_SUCCESS) {
    	for (int i = 0; nResult != ERROR_NO_MORE_ITEMS; i++) {
    		nResult = ::RegEnumKeyEx(hKey,i,szBuffer,&dwValueSize,NULL,NULL,&dwValue,NULL);
    		//...
    		::RegOpenKey(HKEY_CURRENT_USER,"Console",&hTempKey);
    
    		for (int j = 0; nValue != ERROR_NO_MORE_ITEMS; j++) {
    				nValue = ::RegEnumValue(hTempKey,j,szValueName,&dwValueSize,NULL,NULL,NULL,NULL);
    				//...
    		}
    	}
    	RegCloseKey(hKey), RegCloseKey(hTempKey);
    }
    


  • das mit dem Subkey verstehe ich jetzt
    nur was ist mit dem Ändern des Schlüssels?
    Ich bin ja kein C++ Guru/Profi

    ist die Variable dwValue für die Schlüsseländerung zuständig?
    wenn ja wie mach ich das eben dass es von dem Eingabefeld nimmt und den Schlüssel ändert?

    Danke sehr!



  • F.A.Q.
    -> MFC und WinAPI


Anmelden zum Antworten