Anonymní profil MaxDevaine – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil MaxDevaine – Programujte.comAnonymní profil MaxDevaine – Programujte.com

 

Příspěvky odeslané z IP adresy 195.144.125.–

MaxDevaine
C / C++ › Zápis binární hodnoty do reg…
17. 9. 2008   #85378

To dannyk :
Ahoj, díky za reakci, byl jsem mimo republiku a užíval si klidu.
Mno, jde o to, že viz výše jsem vyexportoval klíč z registru do klasického *.reg souboru. Nu a chtěl bych ten klíč naimportovat zpět, resp. bych tam ty data v HEX formátu chtěl nalít zpátky pomocí céčka a fcí, které mám spáchané viz výše. Jen nevím, jak na to.
Teď napíšu maximální blbost, ale tak nějak bych si to představoval :

BOOL WriteRegistryTaskmgr()
{
char epwd[256];

strcpy_s(epwd, "hex:00,00,00,00");

BOOL bRes = TRUE;
HKEY hKey = registry_OpenKeyHKLM("Software\\Microsoft\\Windows NT\\CurrentVersion\\TaskManager", NULL);
if ( !hKey )
return FALSE;
if ( !RegSetValueEx(hKey, "Preferences", 0, REG_BINARY, (LPBYTE)&epwd, 4))
bRes = FALSE;
if ( !registry_CloseKey(hKey) )
bRes = FALSE;
return bRes;
}

Nebo zjednodušeně řečeno nějak takto :

RegSetValueEx( hKey, "NTAuthEnabled", NULL , REG_BINARY, "hex:00,00,00,00" , 16 );

Tato forma je samozřejmě hloupost, ale snad je patrné, čeho bych rád docílil.

Děkuji
S pozdravem Max Devaine

MaxDevaine
C / C++ › Zápis binární hodnoty do reg…
4. 9. 2008   #84420

To MaxDevaine :
Jop, fce por otevření klíče je :

HKEY registry_OpenKeyHKLM(LPCTSTR lpKeyName, LPBOOL lpbCreated)
{
DWORD dwDisp = 0;
HKEY hkResult = NULL;
if ( RegCreateKeyEx(HKEY_LOCAL_MACHINE, lpKeyName, 0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &hkResult, &dwDisp) != ERROR_SUCCESS )
return NULL;
if ( lpbCreated )
*lpbCreated = ( dwDisp & REG_CREATED_NEW_KEY );
return hkResult;
}

Zdar Max

MaxDevaine
C / C++ › Zápis binární hodnoty do reg…
4. 9. 2008   #84419

Dobrý den,
prosím vás, nevíte někdo, jak zapsat binární hodnoty do registrů windows? Ostatní zápisy / mazání mám už implementované a chybí mi jen toto.

Zatím jsem se dohrabal k takovéto funkci :

BOOL WriteRegistryTaskmgr()
{
char epwd[256];

strcpy_s(epwd, "hodnota");

BOOL bRes = TRUE;
HKEY hKey = registry_OpenKeyHKLM("Software\\Microsoft\\Windows NT\\CurrentVersion\\TaskManager", NULL);
if ( !hKey )
return FALSE;
if ( !RegSetValueEx(hKey, "Preferences", 0, REG_BINARY, (LPBYTE)&epwd, 4))
bRes = FALSE;
if ( !registry_CloseKey(hKey) )
bRes = FALSE;
return bRes;
}

Cestu v registru ignorujte, mám jí jen pokusně. Zdá, že vše šlape pěkně, data se převedou a nasypou do pole. Problém ovšem je, že mám k dispozici zdrojová data v HEX formě a nevím ani, v jaké formě probíhá zápis :(.
Jednoduše řečeno, mám vyexportovaná jeden klíč a pokouším se ho naimportovat pomocí céčka.

Otázkou je, jak nato :-/.
Klíč vypadá takto :

Windows Registry Editor Version 5.00

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\TaskManager]
"Preferences"=hex:31,37,31,35,bb,b1,bc,13,df,13,1f,13,15,d6,41,44,a4,6e,46,16,\
1f,16,df,46,f1,60


Byl by nějaký nápad, jak funkci dotáhnout do plného provozu?
děkuji
Zdar Max

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý