Zdzisiu Napisano Luty 13, 2019 Autor Zgłoś Udostępnij Napisano Luty 13, 2019 Problem polega na tym, że otwieram (jak nie istnieje to go tworzę) sobie klucz aby z niego odczytywać wartości. I nawet gdy dana wartość istnieje w rejestrze to funkcja zwraca błąd o kodzie 87. Po rozszyfrowaniu go przy pomocy FormatMessage otrzymuję "Paramter jest nieprawidłowy" Oto ten kod: case WM_CREATE: if (RegOpenKeyEx(HKEY_CURRENT_USER,regkey,0,KEY_ALL_ACCESS,&result)!=ERROR_SUCCESS) RegCreateKey(HKEY_CURRENT_USER,regkey,&result); ZeroMemory(valvedir,MAX_PATH); opres = RegQueryValueEx(result,"PakPath",0,NULL,(unsigned char *)&valvedir,NULL);//tu pobieram if (opres!=ERROR_SUCCESS) { LPVOID lpMsgBuf; FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL,opres,MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language (LPTSTR) &lpMsgBuf,0,NULL ); // Display the string. MessageBox( NULL, (char *)lpMsgBuf, "GetLastError", MB_OK|MB_ICONINFORMATION ); // Free the buffer. LocalFree( lpMsgBuf ); Co robię nie tak jak trzeba Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Freak Napisano Luty 13, 2019 Zgłoś Udostępnij Napisano Luty 13, 2019 Tworzysz nowy klucz,ale nic do niego nie zapisujesz więc nic nie możesz odczytać :) Poza tym ostatni parametr w RegQueryValueEx to adres zmiennej ktora zawiera rozmiar bufora do którego zapisać dane, a u ciebie jest 0. No i nie używaj RegCreateKey bo to jest dla 16 bitowych windowsów, zamiast tego użyj RegCreateKeyEx. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Zdzisiu Napisano Luty 13, 2019 Autor Zgłoś Udostępnij Napisano Luty 13, 2019 Faktycznie, głupi błąd zrobiłem. Poprawiłem jak mówiłeś i już działa. To chyba ze zmęczenia bo piszę właśnie swój pierwszy program w czystym WinApi. Już przeszedłem męki z menu kontekstowym w trayu i SHBrowseForFolder(), ale na tym teraz kompletnie utknąłem. DZIEKI ! Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.