Seite 1 von 1

Registry Einträge bearbeiten

Verfasst: Di Aug 19, 2014 12:11 pm
von Lolf
ich versuche gerade in Programm in C++ zu programmieren welches folgendes tun soll:

1. Das Programm ließt den Wert einer Datei Typ "REG_SZ" aus und gibt ihn dannach für mich lesbar aus.

2. Das Programm soll überprüfen ob der Wert der Datei einem vorgegebenem Wert entspricht. Wenn nicht soll der vorhandene Wert in den anderen Wert geändert werden.

Bis jezt habe ich Punkt 1 erfüllt.
Für Punkt 2 brauche ich eure Hilfe.
Mein bisheriger Code:

Code: Alles auswählen

#include <windows.h>
#include <stdio.h>

int main(int argc, char **argv)
{
    unsigned char temp[99] = {""};
    unsigned long size = sizeof(temp);
    HKEY hKey;
  
    RegOpenKey(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\services\\NlaSvc\\Parameters\\Internet", &hKey);
    RegQueryValueEx(hKey, "ActiveWebProbeHost", NULL, NULL, temp, &size);
    RegCloseKey(hKey);
    printf("Wert: %s", temp, size);
    return 0;
}
Ich hoffe ihr könnt mir bei der Umsetzung des 2. Punktes behilflich sein.
:D :D

Edit by cloidnerux: Code-tags

Re: Registry Einträge bearbeiten

Verfasst: Di Aug 19, 2014 12:19 pm
von cloidnerux
Hi und Willkommen im Forum :D
2. Das Programm soll überprüfen ob der Wert der Datei einem vorgegebenem Wert entspricht. Wenn nicht soll der vorhandene Wert in den anderen Wert geändert werden.
Du bekommst einen String von RegQuereyValueEx zurück, den du in temp speicherst.
Dein zweiter Teil besteht jetzt darin, denn String mit einem Soll-wert, der ja auch wieder ein String ist, zu vergleichen und gegeben falls den Registry Eintrag zu ändern.
Für String vergleiche haben wir auch was im Wiki: http://www.proggen.org/doku.php?id=c:lib:string:strcmp

Re: Registry Einträge bearbeiten

Verfasst: Mi Aug 20, 2014 10:03 am
von oenone
Für das Ändern gibt es genauso eine RegSetValueEx Funktion.

Wozu überhaupt den Wert auslesen und überprüfen? Wenn du ihn gleich ersetzt, hast du höchstens eine unnötige Schreib-Aktion im Falle der Gleichheit, am Endergebnis ändert sich aber nichts.