Registry eintrag, problem mit Typenumwandlung?
-
muss ich das so schreiben?
RegSetValueExW(hkey, _T("Clpbrd"), 0, REG_DWORD, (BYTE *)(&attitudes.SaveInClpbrd), 0); RegSetValueExW(hkey, _T("Protokoll"), 0, REG_DWORD, (BYTE *)(&attitudes.SaveInProtokoll), 0);dann steht in der Registry (ungültiger DWORD Wert)
-
Du musst im letzten Parameter die Größe der übergebenen Daten angeben. Also zum Beispiel
sizeof(attitudes.SaveInClpbrd)
. Damit weiß die Funktion auch, wieviel sie reinschreiben muss.
-
Danke,das funktioniert wunderbar! Ich werde mich jetzt noch drangeben ide Werte wieder auszulesen. Ich glaube aber das schaff ich selber (sonst meld ich mich wieder) . Muss ich was beachten da es sich jetzt um DWORD Werte handelt?
-
Hobbyprogger schrieb:
Muss ich was beachten da es sich jetzt um DWORD Werte handelt?
Öhm, ja, mach nichts falsch
... ne also wüsste jetzt keine spezielle 'Stolperfalle'
.
-
ich hab aber eine gefunden
-> Mein Englisch !
ich hab nicht wirklich ne Idee was die von Microsoft meinen was ich da als Parameter übergeben soll wenn Ich RegGetValue() benutzen will. 1. + 2. Parameter sind klar aber dann... könntest du mir einen Beispielcode für die Benutzung der Funktion schreiben?
-
* (damit mein ich kein Programm, sondern nur wie ich die Funktion richtig benutzen kann)
-
Dazu gibts bereits was in der FAQ: http://www.c-plusplus.net/forum/viewtopic-var-t-is-39373.html
-
Vielen Dank für die Hilfe
-
* ich häte da noch eine "Frage" ich find im Moment den Fehler nicht.
-> der Erste Aufruf von RegQueryValueEx ergibt als Wert für dwNumber 1 obwohl der Wert der gleiche in der Registry ist wie für TooltippTextColor. Der 2. Aufruf der Funktion dagegen gibt den Richtigen Wert für dwNumber zurück.[cpp]RegQueryValueExW(hKey,_T("TraductTextColor"),0,0,(BYTE*)&dwNumber,&dwData); // Eintrag TraductTextColor auslesen
attitudes.TraductTextColor = dwNumber ;
RegQueryValueExW(hKey,_T("TooltippTextColor"),0,0,(BYTE*)&dwNumber,&dwData); // Eintrag TooltippTextColor auslesen
attitudes.TooltippColor = dwNumber ;
cpp]
-
Ich habe jetzt festgestellt, dass der 1. Aufruf der Funktion garkeinen Wert zurückliefert
-
wenn ich die Funktion jetzt 2mal genau gleich aufrufe klappts. also so:
RegQueryValueExW(hKey,_T("TraductTextColor"),0,0,(BYTE*)&dwNumber,&dwData); RegQueryValueExW(hKey,_T("TraductTextColor"),0,0,(BYTE*)&dwNumber,&dwData); RegQueryValueExW(hKey,_T("TooltippTextColor"),0,0,(BYTE*)&dwNumber,&dwData);-> dort klappt alles wie gewünscht aber der doppelte Aufruf kann doch nicht die Lösung sein. Habe ich wieder etwas falsch gemacht??
