Hej
Mam problem z zapisaniem "długiego" tekstu do rejestru. Konkretnie około 80 znaków.
Nie wiem dlaczego, ale zapisuje mi tylko pierwsze 36 znaków.
Funkcja zapisująca do rejestru:
static int strLen( WCHAR * str )
{
int i = 0;
for ( i; str[i] != 0; i++ );
return i;
}
int SetAutoStart()
{
const int buffSize = 4096;
HKEY hkRun;
LONG result;
WCHAR filePath[buffSize];
result = RegOpenKeyEx( HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_ALL_ACCESS, &hkRun );
if( result != ERROR_SUCCESS )
return 1;
GetModuleFileName( 0, filePath, buffSize );
int size = strLen( filePath );
RegSetValueEx( hkRun, L"Aplikacja", 0, REG_SZ, (BYTE *)filePath, size );
return 0;
}
Jeśli po utworzeniu ręcznie edytuje ten rekord i dopisuje kilkanaście nowych znaków to funkcja RegQueryValueEx wywołana do odczytania wartości z tego wpisu zwraca poprawnie wszystkie znaki bez względu na ilość.