====== Rejestry windows ====== ===== Zadanie 1 Lista katalogów powłoki ===== Utwórz aplikację wyświetlającą w kontrolce [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb774735%28v=vs.85%29.aspx|ListView]] wszystkie wartości przypisane do klucza \\ ''HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders''. \\ Znajduje się tam lista katalogów powłoki skojarzonych z bieżącym użytkownikom. * utwórz kontrolkę LiestView (klasa [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb775491%28v=vs.85%29.aspx#WC_LISTVIEW|WC_LISTVIEW]], biblioteka CommonControls) posiadającą styl raportu ([[https://msdn.microsoft.com/en-us/library/windows/desktop/bb774739%28v=vs.85%29.aspx|LVS_REPORT]]). Ustaw jej wielkość tak aby wypełniała całe okno główne (przy zmianie wielkosci okna kontrolka powinna nadal wypełniać całe okno). * dodaj do kontrolki dwie kolumny z etykietami: ''Nazwa'', ''Wartość''. * dodaj do kolejnych wierszy wszystkie elementy klucza zawierającego listę katalogów powłoki użytkownika - ich nazwy umieść w pierwszej kolumnie kontrolki ListView a przypisane im wartości - w drugiej kolumnie. Przydatne funkcje i makra: * [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb775032%28v=vs.85%29.aspx|ListView_InsertColumn]] - dodawanie kolumny * [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb775038%28v=vs.85%29.aspx|ListView_InsertItem]] - wstawianie pojedynczego elementu * [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb775105%28v=vs.85%29.aspx|ListView_SetItemText]] - wstawianie pojedynczej wartości * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms724897%28v=vs.85%29.aspx|RegOpenKeyEx]] - otwiera klucz rejestru * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms724837%28v=vs.85%29.aspx|RegCloseKey]] - zamykanie uchwytu do klucza rejestru * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms724865%28v=vs.85%29.aspx|RegEnumValue]] - pozwala przeglądać wartości przypisane do klucza * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms724902%28v=vs.85%29.aspx|RegQueryInfoKey]] - informacje na temat klucza, np. ilość wartości, długość nazwy, długość wartości ===== Zadanie 2 zapamiętywanie pozycji okna ===== Uzupełnij aplikację z poprzedniego zadania o możliwość zapamiętywania położenia i wielkości okna aplikacji. Przy zamykaniu aplikacji położenie i wielkość okna zapisywana jest w rejestrze w kluczu ''HKEY_CURRENT_USER\Software\WinProg''. Jeżeli klucz ten nie istnieje to jest tworzony. W momencie startu aplikacji zapisane w tym kluczu wartości są odczytywane w celu przywrócenia zapamiętanej pozycji okna. Przydatne funkcje: * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms724842%28v=vs.85%29.aspx|RegCreateKey]] - tworzenie/otworzenie klucza * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms724844%28v=vs.85%29.aspx|RegCreateKeyEx]] - tworzenie/otwieranie klucza * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms724923%28v=vs.85%29.aspx|RegSetValueEx]] - wstawia wartość do rejestru * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms724911%28v=vs.85%29.aspx|RegQueryValueEx]] - pobiera wartość ze wskazanego wpisu w rejestrze