Edytuj stronę Odnośniki Fold/unfold all ODT export Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić. ====== Konsola i informacje o systemie ====== ===== Zadanie 1 ===== Napisz program wyświetlający terminal (konsolę), w którym wyświetlone zostaną następujące informacje. * ilość procesorów * rozdzielczość ekranu * nazwę komputera DNS oraz NetBIOS * ilość wykorzystanej pamięci w procentach Ustaw wybraną przez siebie wielkość okna konsoli, tytuł okna, rozmiar czcionki oraz kolory tła i tekstu. **Przydatne funkcje API ** [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms682073%28v=vs.85%29.aspx|Funkcje konsoli]] * **AllocConsole**, **FreeConsole** \\ tworzenie konsoli * **GetStdHandle** \\ uchwyt do standardowego wejścia i wyjścia (STD_OUTPUT_HANDLE) * **WriteConsole**, **ReadConsole** \\ pisanie/czytanie * **SetConsoleTextAttribute** \\ ustala cechy tekstu wyświetlanego na konsoli (np. kolor tła) [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms724953%28v=vs.85%29.aspx|Informacje o systemie]] * **GetComputerNameEx** \\ pobiera nazwę DNS i NetBIOS komputera * **[[https://msdn.microsoft.com/en-us/library/windows/desktop/ms724385%28v=vs.85%29.aspx|GetSystemMetric]]** \\ pobiera różnorodne istawienia konfiguracji komputera, m.in. rozmiary ekranu * **[[https://msdn.microsoft.com/en-us/library/windows/desktop/aa366589%28v=vs.85%29.aspx|GlobalMemoryStatusEx]]** \\ informacje o zajętości pamięci fizycznej i wirtualnej **Operacje na napisach** * **lstrlen** \\ ilość znaków w napisie * **_snwprintf_s** \\ formatowanie napisu za pomocą składni zgodną z ''printf'' * **_itow** \\ zamiana liczby całkowitej na napis ===== Zadanie 2 ===== Napisz program wyświetlający terminal (konsolę) reagujący na wpisywane komendy. Konsola obsługujące następujące polecenia: * ''quit'' zamyka terminal * ''help'' wypisuje listę dostępnych poleceń * ''info'' wypisuje takie informacje o systemie jak: nazwa komputera, rozdzielczość, katalog bieżący * ''mem'' wyświetla informacje o pamięci: zajętość w procentach, ilość wolnej i całkowitej pamięci fizycznej w GB, ilość wolnej i całkowitej pamięci wirtualnej w GB, rozmiar pliku stronicowego (page file) * ''cls'' czyści ekran * ''notatnik'' uruchamia program ''notepad.exe'' * ''logout'' wylogowuje użytkownika Konsola powinna reagować na wciśnięcie Ctrl+C wyświetleniem komunikatu "Nie wciskaj Ctrl+C. Nic to nie da." **Przydatne funkcje API ** * **SetConsoleMode** \\ ustawienie trybu działania strumieni, m.in. ''ENABLE_LINE_INPUT'' * **ReadConsole** \\ odczyt znaków z konsoli * **GetConsoleScreenBufferInfo** \\ pobranie informacji i buforze konsoli, m.in. położenie kursora * **SetConsoleCursorPosition** \\ ustawienie pozycji kursora * **FillConsoleOutputCharacter**, **FillConsoleOutputAttribute** \\ wypełnienie zawartości bufora znakami/atrybutami * **lstrcmp** \\ porównanie napisów * **[[https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425%28v=vs.85%29.aspx|CreateProcess]]** \\ uruchamianie procesu ===== Zadanie 3 ===== Napisz program, który w konsoli wyświetla na bieżąco zajętość pamięci fizycznej i wirtualnej, ilość działających procesów. Zajętość wizualizowana jest za pomocą kolorowych pasków (np. kolor czerwony oznacza znaczne wypełnienie pamięci), podobnie do wyniki działania linuksowego polecenia ''htop'' {{ zajecia:winprog_2015_1:htop_sample.png?500 }} ===== Zadanie 4 ===== Korzystając w funkcji API systemu windows napisz konsolową grę Snake.