Literatura:
Plan laboratorium:
Materiały i kody źródłowe z laboratoriów:
Kody źródłowe z semestru zimowego 2018/2019
Opis projektu | Microsoft Visual C++ 2010 | Borland C++Builder 6 | Borland Delphi 7 (dla PSPiZK) |
|||
---|---|---|---|---|---|---|
Wstęp do programowania wizualnego/RAD |
Suwak (MFC) Nie działa komunikat ..ThumbPos.. Suwak (MFC, WM_HSCROLL) |
Kolory (VCL) | Kolory (VCL) | |||
Aplikacja wyświetlająca opisy błędów Windows | Opisy błędów | Opisy błędów | - | |||
Definicja typu liczby zespolonej (szablon klasy) i przykład jej użycia do obliczania zbioru Mandelbrota i Julii |
- | Mandelbrot | Mandelbrot | |||
Projektowanie kontrolek | - | Przykład kontrolki VCL (TMailLabel, TWWWLinkLabel) |
- | |||
Odbieranie i wysyłanie komunikatów | Komunikaty (MFC) | Komunikaty (VCL) | Komunikaty (VCL) | |||
Aplikacja konsolowa korzystająca z funkcji WinAPI |
Wyświetlanie wersji Windows | - | - | |||
Tworzenie okna i pętla główna | WinMain | WinMain Jak stworzyć pusty projekt Win32 w BCB6 |
- | |||
Kolory w czystym WinAPI (kontynuacja WinMain) |
Kolory | - | - | |||
Lista okien z podglądem (EnumWindows) | Lista okien Rozwiniąć na wzór projektu BCB6 |
Lista okien (na bazie projektów Sławomira Wawrzyniaka i Michała Gajewskiego) |
- | |||
Aplikacja uruchamiająca procesy (funkcja WinExec i ShellExecute) |
WinExec i ShellExecute (i okno dialogowe wyboru pliku) |
- | - | |||
Uruchamianie i kontrola procesów | Klasa CCreateProcess | Komponenty TCreateProcess i TControlProcess | - | |||
Biblioteka DLL | - | Biblioteki DLL (wersja bez VCL) |
- | |||
Hak (KeyLogger) | Niżej jest wersja VC++ studenta | Haki - przechwytywanie komunikatów | - | |||
DiskFree (biblioteka DLL, aplikacja MFC i aplikacja konsolowa) |
- | - | - | |||
Aplet sterowania - DiskFree | - | Aplety panelu sterowania To nie jest DiskFree |
- | |||
Rejestr systemu Windows |
Rejestr (czyste WinAPI) (por. MFC CWinApp::SetRegistryKey) |
W C++Builderze wygodniej korzystać z TRegistry | W Delphi wygodniej korzystać z TRegistry | |||
MCI | - | Odtwarzacz audio/wideo bazujący na MCI (rozszerzenie projektu Mateusza Sołtysa) |
- | |||
Cztery proste funkcje związane z siecią |
Internet (wersja Unicode) Internet (wersja ANSI) |
Internet | - | |||
Windows Sockets |
WinSock (projekty MP z książki o VC++, zrobić ostatni projekt własny, (?)rozszerzyć o podgląd okna) |
- | - | |||
Dodatek świąteczny: | - | Choinka - okno o dowolnym ksztalcie, powiadomienie (dymek), odtwarzanie pliku pobranego z sieci, automatyczne uruchamianie i zapisywanie pozycji w rejestrze |
- |
Pakiety kodów źródłowych z książek
Zob. też materiały kursu V w wersji C++Builder i Visual C++
oraz projektowanie aplikacji Windows z wykorzystaniem narzędzi RAD (C++ Builder/Delphi/VB).
Referaty:
Warunki zaliczenia referatu:
- przygotowanie prezentacji PowerPoint/PDF (w miarę szczegółowej)
- wygłoszenie referatu na zajęciach (35-45 min)
- przygotowanie 2 pytań do referatu
Plan referatów [txt]
Możliwe pytania z referatów na kolokwium [txt]
Prowadzący | Referat (PDF/PPT) | Dodatkowe materiały | Data | Linki | ||||
---|---|---|---|---|---|---|---|---|
Sławomir Wawrzyniak | PowerShell | Skrypty | 5.11.2010 |
Pobierz PowerShell 2.0 Strona Microsoft (ang.) Przewodnik po PowerShell (do druku, pl) |
||||
Michał Gajewski | Memory-mapped files i zarządzanie pamięcią | Projekty | 12.11.2010 |
MSDN Wikipedia |
||||
Michał Szyszka | Windows Sockets 2 |
Projekty (na bazie VCL) Uzupełnić o przesyłanie plików Przebieg inicjacji połączenia kontrolki TServerSocket Przebieg inicjacji połączenia kontrolki TClientSocket Uzupełnienie (JM) |
19.11.2010 |
MSDN Wikipedia The Indy Project |
||||
Mateusz Sołtys | Media Control Interface (MCI) |
Projekt odtwarzacza (bez TMediaPlayer z VCL) Uzupełnienie o powiadamianie o zakonczeniu odtwarzania (JM) Zob. też projekt zaliczeniowy poniżej. |
26.11.2010 |
MSDN |
||||
Tomasz Jurkiewicz | Systemy plików w WinAPI |
Projekt |
3.12.2010 |
MSDN |
||||
Jakub Szatkowski | Wątki i ich synchronizacja |
Projekty Aplikacja ilustrująca zagadnienie pięciu ucztujących filozofów Aby doprowadzić do blokady należy kazać jeść przez chwilę dwóm nie sąsiadującym filozofom, a następnie kliknąć przycisk "Wszyscy na raz". |
3.12.2010 |
MSDN Wikipedia Janusz Ganczarski - Programowanie wielowątkowe w Win32 Problem ucztujacych filozofow (Wikipedia) |
||||
Paweł Wróblewski | Programowanie usług systemu Windows |
Projekty |
10.12.2010 |
MSDN MSDN |
||||
Krzysztof Sumowski Rafał Zarębski Piotr Warzocha |
Bezpieczeństwo aplikacji Windows |
Projekty Opis |
7.1.2011 | |||||
Dawid Zarzycki | Reverse Engineering |
Projekty Opis Film (realizacja zad. 1 z prezentacji) |
14.1.2011 | Linki [txt] | ||||
Piotr Małłek | Komunikacja między procesami (pipes) | Projekty | 14.1.2011 | MSDN | ||||
|
||||||||
Alicja Zwiewka | Funkcje WinAPI związane z obsługą myszy |
Projekty
Źle działa zmiana kursora myszy |
28.10.2011 | |||||
Jakub Wiśniewski | Usługi systemu Windows |
Projekty
Brak materiałów! |
9.11.2011, 16.11.2011 |
|||||
Krzysztof Jeliński | Tworzenie gadgetów dla Windows Vista/7 |
Projekty Gadget Gadget po uruchomieniu w Windows Vista jest zbyt mały |
16.11.2011 23.11.2011 |
|||||
Natalia Wyczislok | Wątki i ich synchronizacja | Projekty | 25.11.2011 30.11.2011 |
|||||
Łukasz Rączkowski | Direct Sound |
Projekty (VS2010 i BCB6)
Wymagany format plików WAVE: dwukanałowy PCM, częstotliwość próbkowania 44100 kHz (CDA) |
30.11.2011 7.12.2011 |
DirectSound w C++Builder Uwaga! Projekt BCB6 (JM) nie działa lub działa tylko czasami (popr. zob. link); obsługę rozszerzyć do innych formatów niż CDA w WAVE |
||||
Justyna Lipska | Szyfrowanie: CryptoAPI, CAPICOM i alternatywy |
Projekty aplikacji konsolowych (VS2010) Projekty aplikacji MFC (VS2010) |
9.12.2011 14.12.2011 |
Uwaga! Program w wersji MFC wymaga wskazania pustego pliku do zapisu. | ||||
Przemysław Buczkowski | Podstawy COM |
Projekty (VS2010, ATL)
Opis krok po kroku |
14.12.2011 16.12.2011 |
|||||
Łukasz Matczyński | Rozpoznawanie mowy za pomocą Microsoft Speech Recognition |
Projekty (VS2010)
Uwaga! Nie zadziała w polskiej wersji językowej Windows |
4.01.2012 | |||||
Damian Turula | Microsoft Speech API (SAPI) | Projekty (VS2010) | 4.01.2012 | MSDN | ||||
Tomasz Dzieniak |
Podstawy UI w WinAPI: Tworzenie okna Tworzenie kontrolki (przycisku) "Anatomia" okna GDI |
Projekty (VS2010): Tworzenie okna Tworzenie przycisku Ładowanie i wyświetlanie obrazu BMP. Chowanie paska zadań. GDI - pobieranie koloru z punktu ekranu wskazanego myszką Zmiana kursora myszy - poprawić w kodzie AZ wyżej Haki (keylogger). Wersja BCB6 jest wyżej. |
18.01.2012 20.01.2012 25.01.2012 |
Zadania Uwaga! Przycisk można utworzyć na oknie (zob. projekt) |
||||
Michał Gajewski |
Programowanie dla Windows 8 (Metro) |
Projekty (VS 11) | 11.02.2012 (nie referowane) | |||||
|
||||||||
Piotr Ablewski |
Obsługa wielodotyku i gestów (Touch API) w Windows 7 i 8 |
Projekty (VS 2012) Informacje Brak prezentacji i materiałów!!! |
6.11.2012 13.11.2012 |
MSDN | ||||
Jakub Kucharski |
Wstęp do DirectX |
Przykładowe projekty są w DirectX SDK | 4.12.2012 | Developing Games for Windows (MSDN) | ||||
Krzysztof Chyziński |
Tworzenie i ładowanie bibliotek DLL |
Przykłady (C++) |
18.12.2012 | |||||
Stipe Kodžoman |
Windows Desktop Sharing |
Projekt (dla platformy .NET!) |
8.1.2013 | MSDN | ||||
|
||||||||
Marcin Burak, Adam Błaszczyk |
Komunikacja procesów uruchamianych na różnych komputerach (aplikacje rozproszone) |
Projekt |
30.11.2018 |
Protokoły HTTP i WinSockets - projekty .NET WPF i .NET Core 2.1 z funkcjami WinAPI Protokół RPC - projekt C++ |
||||
Igor Pawlikowski |
Strukturalna obsługa wyjątków (SEH) |
Projekt |
7.12.2018 | Konstrukcje __try..__except i __try..__finally oraz funkcja RaiseException | ||||
Piotr Kruszewski |
Kryptografia. Szyfrowanie plików |
Projekt |
7.12.2018 14.12.2018 |
|||||
Kacper Lamparski |
Wątki |
Projekt |
14.12.2018 21.12.2018 |
|||||
Kajetan Krzewina |
Usługi |
Projekt |
21.12.2018 |
sc.exe create "Nazwa usługi" binPath= "D:\Usługa.exe" (spacja po Path) sc.exe start "Nazwa usługi" sc.exe stop "Nazwa usługi" sc.exe delete "Nazwa usługi" Nieprzetestowane |
||||
Michał Kossakowski |
WaitableTimer |
Projekt |
4.01.2019 11.01.2019 |
Możliwość wybudzenia komputera |
||||
Przemysław Kuligowski |
Pliki mapowane |
Projekt |
11.01.2019 |
Można też w .NET. - https://docs.microsoft.com/pl-pl/dotnet/standard/io/memory-mapped-files Scenariusz: Pliki mapowane tworzone w jednej aplikacji, a pozostałe dostęp poprzez widoki. Brakuje przykładu równoczesnego dostępu do mapowanego pliku (obrazu) |
||||
Bartosz Pawlak |
Sterta procesu |
Projekt |
25.01.2019 | https://docs.microsoft.com/en-us/windows/desktop/api/heapapi/ | ||||
Magdalena Linowiecka |
Pula wątków |
Projekt |
25.01.2019 | Wzór kodu z projektu: MSDN | ||||
Dominika Jaśniewska |
Scenariusz plug-inów - dynamicznie ładowane biblioteki DLL z funkcjami o znanej sygnaturze |
Projekt |
25.01.2019 | |||||
Tomasz Kobus |
Speach API |
Projekt |
4.02.2019 (przesłane) | |||||
Patrycja Brzozowska |
IOCP |
Projekt |
25.02.2019 (przesłane) |
Projekty zaliczeniowe:
Projekty należy wybrać najpóźniej do 17 grudnia. Można zgłaszać się mailem lub na zajęciach (o pierwszeństwie decyduje kolejność zgłoszenia). Do projektu mogą zgłaszać się zespoły 2 lub 3 osobowe, ale projekt musi być odpowiednio bogatszy.
Termin prezentacji: styczeń.
We wszystkich aplikacjach powinny być wyraźnie rozdzielone warstwy modelu (w osobnej bibliotece DLL, przy okazji API aplikacji) i widoku (MFC, VCL lub konsola).
Proszę przygotować projekty w Borland C++Builder 6 (preferowany) lub Visual C++ (wersja 2008 lub 2010). Projekty muszą kompilować się w czystym środowisku BCB6 (ew. VC++) tzn. bez dodatkowych bibliotek (poza szczególnymi uzgodnionymi przypadkami) bez ostrzeżeń i błędów.
Rezerwacje projektów zaliczeniowych [txt]
Autor | Projekt (kod źródłowy) | Semestr | Uwagi | |||
---|---|---|---|---|---|---|
Michał Szyszka | Aplikacja klient-serwer umożliwiająca podgląd zdalnego ekranu (klient za pomoca winsock wysyła zrzuty ekranu, serwer wyświetla rysunki wysłane przez wszystkich klientów) |
lato 2010/2011 | Część kodu musi być skompilowana w Dev-C | |||
Mateusz Sołtys | Odtwarzacz MCI | lato 2010/2011 | W trakcie przeciągania (drag&drop) pliku ze spacja w nazwie do okna z listą nie udaje się obliczyć długości trwania utworu. | |||
Tomasz Jurkiewicz | Przeglądanie zawartości dysków | lato 2010/2011 | Nie uruchamia się w środowisku BCB6. Trzeba skompilować projekt i uruchomić .exe. | |||
Paweł Wróblewski | Aplikacja klient-serwer umożliwiająca zdalne wykonywanie poleceń konsoli (klient wysyła łańcuch-polecenie, który jest wykonywany przez serwer (system, cmd); serwer zwraca łańcuch outputu, który jest wyświetlany przez klienta). | lato 2010/2011 | Nie uruchamia się w środowisku BCB6. Trzeba skompilować projekt i uruchomić .exe. | |||
Piotr Małłek | Gadżet dla Windows Vista/7 | lato 2010/2011 | Rozszerzenie nazwy pliku .zip, zawierającego plik HTML i manifest XML, należy zmienić na .gadget. | |||
Dawid Zarzycki | Aplikacja odczytujaca i wyswietlajaca obrazy kart z biblioteki C:\Windows\System32\cards.dll | lato 2010/2011 | ||||
Jakub Szatkowski | Aplikacja wyswietlajaca odczytane z WMI informacje o systemie | lato 2010/2011 | ||||
Sławomir Wawrzyniak | Aplikacja wyswietlajaca zrzut ekranu z zaznaczonymi oknami | lato 2010/2011 | por. projekt z zajęć (JM) | |||
Michał Gajewski | Aplikacja wyświetlająca listę okien i umożliwiająca dodanie do ich tytułów numerów uchwytów | lato 2010/2011 | por. projekt z zajęć (JM) | |||
Piotr Warzocha | Klient poczty elektronicznej (POP3/SMTP) | lato 2010/2011 | Wymaga Indy. | |||
|
||||||
Łukasz Rączkowski | Kontrola obiektu na scenie 3D za pomocą głosu | zima 2011/2012 | Wymaga angielskiej wersji Windows. Lista komend: "help". Użycie komendy "load file" umożliwia wczytanie modelu z pliku *.obj. Załączone są trzy przykładowe pliki w tym formacie. | |||
Natalia Wyczislok |
Wygaszacz ekranu (śnieg spadający na okna): Projekt (VS2010) Pliki wykonywalne |
zima 2011/2012 | Pliki wykonywalne należy skopiować do katalogu Windows lub Windows\System32. | |||
Alicja Zwiewka | Aplikacja "Kolory" w czystym WinAPI | zima 2011/2012 | ||||
Łukasz Matczyński |
1. Gadget Windows 7/Vista zmieniający tło pulpitu w zależności od bieżącej pogody: Projekt (VS2010) Gadżet 2. Kontrola pulpitu i okien za pomocą kamery internetowej: Projekt (VS2010) Pliki wykonywalne z bibliotekami OpenCV |
zima 2011/2012 | Uwaga! Projekt 2 działa bardzo wolno (przekazywanie obrazu przez pliki). Opiera się na OpenCV (niezbędne do kompilacji). | |||
Przemysław Buczkowski |
Pobieranie i wyświetlanie tekstów piosenek do wskazanych plików mp3: Projekt (VS2010) Opis |
zima 2011/2012 | ||||
Tomasz Dzieniak |
Odtworzenie projektów z zajęć (BCB6) w VC++2010 (w miarę możliwości bez MFC): Projekt (VS2010) Pliki wykonywalne |
zima 2011/2012 | ||||
Justyna Lipska Jakub Wiśniewski |
Klient poczty (POP3/SMTP) na bazie WinSock: Projekt (VS2010) Brak projektu - do poprawy! |
zima 2011/2012 |
Nie obsługuje SSL. Przykładowe ustawienia konta: Nazwa: login Hasło: hasło Serwer POP3: pop3.wp.pl Port POP3: 110 Serwer SMTP: smtp.wp.pl Port SMTP: 25 Adres e-mail: login@wp.pl |
|||
|
||||||
Krzysztof Chyziński |
Analiza i wyświetlanie funkcji eksportowanych przez biblioteki DLL Projekt (VS2010) |
zima 2012/2013 | ||||
Jakub Kucharski |
Żarty oparte na WinAPI (The art of trolling) Projekt (VS2010) |
zima 2012/2013 | ||||
Piotr Ablewski |
PowerShell dla programistów Tutorial |
zima 2012/2013 | ||||
Sylwia Jędrzejewska |
Usługa Windows Projekt (VC++) |
zima 2012/2013 |
Uwagi |