Registry Tutorial
-
Kennt jemand ein gutes tutorial für die Registry Funktionen?
-
hallo
einige gute anmerkungen zum thema findest du im winapi faq.
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hab in FAQ geguckt, aber ich versteh trotzdem nicht, was hierran falsch ist:
HKEY hKey; RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",0,0,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,0); BYTE cString[]="G:\\lol.txt"; RegSetValueEx(hKey,"sav-dat",0,REG_SZ,cString,strlen(cString)+1); RegCloseKey(hKey);
-
http://win-api.com/resources/Registry.zip
hier gibts auch was...
-
Evtl. fehlen dir die nötigen Rechte für KEY_ALL_ACCESS?!
Liefert RegCreateKeyEx denn ERROR_SUCCESS zurück, oder was anderes?
-
Wie kann ich das denn nachprüfen?
-
if(RegCreateKeyEx(...) == ERROR_SUCCESS) { // Dieser Aufruf war erfolgreich } else { // Leider ist ein Fehler aufgetreten }
-
Ja, das ist erfolgreich. Der Fehler kommt auch bei:
iRegSetValueEx(hKey,"sav-dat",0,REG_SZ,cString,strlen(cString)+1);
-
Was für ein Fehler kommt da?!
-
27 In27 invalid27 `27
(Each
[cpp]Diese 4
-
nero-ex schrieb:
iRegSetValueEx(hKey,"sav-dat",0,REG_SZ,cString,strlen(cString)+1);Ist das i vor RegSetValueEx nur ein Vertipper hier im Forum
Ansonsten sehen deine Fehlermeldung irgenwie recht komisch aus 
-
oops, ne, war nich nur vertippt.
Aber sin trotzdem noch die Fehler
Inund
Invalide
-
nero-ex schrieb:
Aber sin trotzdem noch die Fehler
Inund
InvalideWillst du uns hier veralbern - das sind doch keine vollständigen Fehlermeldungen

-
Hier der Beweis:
-
Seltsam - damit kann ich aber leider nichts anfangen. Vielleicht hat ja jemand anderes noch eine Idee

-
Liefert denn strlen(cString)+1 den Wert 11?
-
If the function fails, the return value is a nonzero error code defined in WINERROR.H. You can use the FormatMessage function with the FORMAT_MESSAGE_FROM_SYSTEM flag to get a generic description of the error.
Poste mal was diese Funktion daraufhin liefert.
MfG SideWinder
-
Hier scheint der Fehler zu sein:
BYTE cString[]="G:\\lol.txt"; cout<<strlen(cString)+1;aus irgendeinem Grund kann er die Länge cStrings nicht messen. Vielleicht weil es BYTE ist?
mit char klappt es jedenfals. Aber ist BYTE nicht nur eine andere Definition

-
Hallo,
nero-ex schrieb:
Aber ist BYTE nicht nur eine andere Definition
nein, ist es nicht, denn in WINDEF.H steht geschrieben
:typedef unsigned char BYTE;das "unsigned" macht den entscheidenden Unterschied. Verwende BYTE also nur dann, wenn die Daten wirklich als Bytes, und nicht als Zeichen des Zeichensatzes behandelt werden sollen. Meistens sagen dir die Funktions-Deklarationen, was du sinnvollerweise benutzen solltest, in diesem Falle für strlen:
size_t strlen( const char *string );und am besten hält man sich genau an die Typangaben, um Überraschungen zu vermeiden.
MfG