Registry sichern
-
Hat niemand von euch eine Idee

-
Null, NULL NULL. Die Datei wird einfach nicht mit den Registrywerten
gefüllt. Egal wie ich es anstelle

Ich werde vor Weihnachten noch zum Stier :xmas2:
-
Hast du XP, sonst brauchst du RegSaveKey - ansonsten: was sagt GetLastError?!
-
Hi,
ich nutze Windows XP. SE_BACKUP_NAME Privileg habe ich wie in der
MSDN im Beispiel gezeigt gesetzt.Mein Code für die Rechte :
TOKEN_PRIVILEGES tp; LUID luid; if ( !LookupPrivilegeValue( NULL, // lookup privilege on local system lpszPrivilege, // privilege to lookup &luid ) ) // receives LUID of privilege { printf("LookupPrivilegeValue error: %u\n", GetLastError() ); return FALSE; } tp.PrivilegeCount = 1; tp.Privileges[0].Luid = luid; if (bEnablePrivilege) tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; else tp.Privileges[0].Attributes = 0; // Enable the privilege or disable all privileges. if ( !AdjustTokenPrivileges( hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), (PTOKEN_PRIVILEGES) NULL, (PDWORD) NULL) ) { printf("AdjustTokenPrivileges error: %u\n", GetLastError() ); return FALSE; } return TRUE;Mein Aufruf zum sichern:
SetPrivilege(NULL,SE_BACKUP_NAME,TRUE); HKEY hkey; DWORD err = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "",0, KEY_ALL_ACCESS, &hkey); err = RegSaveKey(hkey, "c:\\231204.reg", NULL); //err = RegSaveKeyEx(hkey, "c:\\231204.reg", NULL); RegCloseKey(hkey);
-
Was sagt denn GetLastError? Ansonsten schau dir mal dieses Beispiel aus der MSDN-Library an

-
GetLastError gibt mir 6 zurück

-
Ergänzung:
if ( !AdjustTokenPrivileges( hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), (PTOKEN_PRIVILEGES) NULL, (PDWORD) NULL) ) { printf("AdjustTokenPrivileges error: %u\n", GetLastError() ); //hier ErrorCode "6" return FALSE;
-
Dein hToken wird ungültig sein:
6 - The handle is invalid. - ERROR_INVALID_HANDLE
Hast du dir das Beipsiel mal angeschaut, denn dort siehst du, dass du das/den? Token erst mit OpenProcessToken öffnen musst

-
Hi,
ich habe jetzt zwar wie im Beispielif (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken )) { MessageBox("Failed OpenProcessToken\n"); return ERROR_FUNCTION_FAILED; }mit eingebunden zu Beginn der Funktion, aber es wird noch immer nichts
in die Datei geschrieben.
GetLastError zeigt mir zwar nichts mehr an, allerdings verliere ich auch so
langsam die Lust nach 19 neu angelegten Projekten

Schöne Feiertage euch allen noch :xmas1: und lasst euch schön was schenken.
-
Hast du es mal direkt mir der Funktion ModifyPrivilege aus dem Beispiel versucht - dort wird ja z.B. auch noch LookupPrivilegeValue aufgerufen

-
Jap. Habe ich. Hab die ganze Funktion übernommen und damit
experimentiert. Jetzt habe ich das mit shellexecute und regedit mit
den exportparametern silent und export gemacht. geht schnell und ohne
probleme.wenn doch noch jemand den winapi code lauffähig hat würde ich es
aber auch gerne mal sehen, wie es damit geht.
selbst hab ich aber keine böcke mehr das nochmal zu probieren.
