ObScUrItAs
Mitglied
Code:
RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\MySoft\\UHN",0,KEY_READ, &key);
RegQueryValueEx(key,"number",NULL,&dwType,(LPBYTE)szString,&dwSize);
RegCloseKey(key);
dp = fopen("alt.txt" , "w");
fputs(szString,dp);
fclose(dp);
printf("Gib jetzt den Namen der Datei mit dem neuen Passwort an ... \n");
scanf("%s",&neu);
dp = fopen(neu , "r");
fgets(toll,300,dp);
fclose(dp);
tu=lstrlen(toll);
RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\MySoft\\UHN",0,KEY_WRITE, &key);
RegSetValueEx(key,"number",NULL,dwType,(LPBYTE)toll,tu);
RegCloseKey(key);
}
Also folgendes Prob : Der Wert zum Auslesen steht in einer RegBinary. Wenn ich den Wert in der Datei alt.txt speicher, quasi als Sicherung, dann geht das ohne Probleme und ich kann den Wert später wieder auslesen und zurück schreiben.
Das Problem kommt nun aber, wenn ich einen neuen Wert reinschreiben will. Wenn ich mit fopen die Datei öffne, wo der neue Wert drinne steht und diesen neuen Wert in die RegBinary reinschreibe, dann macht das Prog immer nur die ersten 5 Zeichen von dem neuen Wert in die RegBinary. Es kann eigentlich nicht sein , dass vll die Variable toll zu klein gewählt ist, denn ich habe sie als toll[300] definiert. Selbst der alte Wert ist 8 Zeichen lang und wenn ich den wieder aus der Datei alt.txt lesen lasse und ihn dann wieder in die RegBinary schreibe, dann geht das ohne Probleme. Nur bei dem neuen Wert macht er nur die ersten 5 Zeichen und hört dann einfach auf. Da ich den neuen Wert vorher selber aus einer anderen RegBinary gelesen habe ist es auch ein zulässiger Wert. Woran kann es liegen ?
Ach ja und wenn ich schonmal dabei bin, in der RegBinary stehen ja einmal Hex-Zahlen und dann rechts daneben dann die zugewiesenen Zeichen. Wenn ich die RegBinary auslese, dann kriege ich immer nur den Zeichen-Müll und nicht die Hex-Zahlen. Gibt es ne Möglichkeit, dass ich anstatt den Zeichen-Müll die Hex-Zahlen auslesen kann ?