Programy pro OS Windows

Podobné dokumenty
ČÁST 1. Základy 32bitového programování ve Windows

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

GUI ve Win32API a MFC I KIV / WIN

GUI grafických aplikací GUI pro Othello

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Windows a real-time. Windows Embedded

Základní informace. Operační systém (OS)

Procesy a vlákna (Processes and Threads)

úvod vjj 1

Výpočetní technika. PRACOVNÍ LIST č. 7. Ing. Luděk Richter

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

úvod Historie operačních systémů

OPERAČNÍ SYSTÉM. základní ovládání. Mgr. Jan Veverka Střední odborná škola sociální obor ošetřovatel

SOFTWARE - programové vybavení počítače (nemůžeme si na něj sáhnout) Bez SW nemůže PC fungovat. Schéma počítače:

IT ESS II. 1. Operating Systém Fundamentals

Operační systémy: funkce

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Principy operačních systémů. Lekce 1: Úvod

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

Komponenty v.net. Obsah přednášky

Operační systém. Mgr. Renáta Rellová. Výukový materiál zpracován v rámci projektu EU peníze školám

Stavba operačního systému

Přednáška 11. Historie MS Windows. Architektura Windows XP. Grafické a znakové rozhraní. Úlohy, procesy a vlákna.

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE

Projekt do předmětu PAS. Textový editor

úvod vjj 1

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

IRAE 07/08 Přednáška č. 7. Začátek (head)

Operační systémy. Přednáška 1: Úvod

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

Principy operačních systémů. Lekce 5: Multiprogramming a multitasking, vlákna

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Logická organizace paměti Josef Horálek

I n f o r m a t i k a a v ý p o č e t n í t e c h n i k a. Operační systém

Základy práce na PC. Ing. Jan Roubíček

Softwarové komponenty a Internet

Informační Systém pro Psychiatrii HIPPO

Základy programování Operační systémy (UNIX) doc. RNDr. Petr Šaloun, Ph.D. VŠB-TUO, FEI (přednáška připravena z podkladů Ing. Michala Radeckého)

I n f o r m a t i k a a v ý p o č e t n í t e c h n i k a. MS Windows

Implementace systémů HIPS: ve znamení 64bitových platforem. Martin Dráb

Klíčové pojmy: Události, handlery, třída Graphics, pera, stětce, kreslení vyplněných a nevyplněných objektů.

MPLAB Harmony. Idea Instalace. Více podrobností naleznete na nejen k MPLAB Harmony

SOFTWARE. Programové vybavení počítače

01. HODINA. 1.1 Spuštění programu VB Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian

František Hudek. únor ročník

ZOS OPAKOVÁNÍ. L. Pešička

Operační systémy (OS)

TÉMATICKÝ OKRUH Softwarové inženýrství

Téma 8: Konfigurace počítačů se systémem Windows 7 IV

Operační systém MS Windows XP Professional

Kapitola 1: Co je Delphi 19. Překlad projektu 23

Objektově orientované programování

Přednáška 1. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

1 Nejkratší cesta grafem

IP kamera. Uživatelský manuál

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Technické vybavení počítače. (všechny části z nichž je počítač složen)

MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti

Úvod do Linuxu. SŠSI Tábor 1

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

9. Sítě MS Windows. Distribuce Windows. Obchodní označení. Jednoduchý OS pro osobní počítače, pouze FAT, základní podpora peer to peer sítí,

AIDA64 Extreme. Příručka k nastavení. v

Generické programování

CYCLOPE PRINT MANAGEMENT SOFTWARE- UŽIVATELSKÁ PŘÍRUČKA

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Ovladače pro Windows. Ovladače Windows A4M38KRP. Str. 1

Dílčí projekt: Systém projektování textilních struktur 1.etapa: tvorba systému projektování vlákno - příze - tkanina


Implementace systémů HIPS: historie a současnost. Martin Dráb

Programové prostředky IS/IT

Dědičnost (inheritance)

Dialogy a základy GUI pro.net KIV / WIN

Metody připojování periferií

IUJCE 07/08 Přednáška č. 6

Programové prostředky IS/IT

Česká příručka. Seznam: Obsah balení a systémové požadavky:

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE JÍST.

Architektura a koncepce OS OS a HW (archos_hw) Architektura a koncepce OS Jádro OS (archos_kernel) Architektura a koncepce OS Typy OS (archos_typy)

Vrstvy programového vybavení Klasifikace Systémové prostředky, ostatní SW Pořizování Využití

První kroky s METEL IEC IDE

Masarykova ZŠ Klenčí pod Čerchovem OPERAČNÍ SYSTÉM

Vývoj multiplatformní aplikace v Qt

Téma 1: Práce s Desktop. Téma 1: Práce s Desktop

1. Programování proti rozhraní

Instalace OS, nastavení systému

PROGRAMOVÁNÍ PRO MS WINDOWS 1

Administrace služby - GTS Network Storage

Činnost operačních systémů. Beránek Pavel 1. KŠPA

Základní programové vybavení počítače

Obsah. Kapitola 1. Předmluva 11 O této knize 13 Konvence...13

Bc. Martin Majer, AiP Beroun s.r.o.

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

Transkript:

Programy pro OS Windows Základní pojmy Operační systém o = program, rozhraní mezi člověkem a PC o Poskytuje programům přístup k HW (uživatelský vstup, úložiště, RAM, CPU atd.) Aplikace (application) = soubor *.exe s kódem programu, proměnnými, a resources (datové zdroje ikony, obrázky, kurzory, ) Multitasking (multitasking) o = víceúlohový, běh několika aplikací najednou o jedno CPU = simulace, časový multiplex čas uživatel A1 A2 A3 ~ms CPU A1 A2 A3 A1 A2 A3 A1 kooperativní multitasking (cooperative multitasking) o každý program zabere procesorový čas na co nejkratší dobu, a předá jej dalšímu CPU A1 A2 A3 A1 OS čas o N: 1 program může zablokovat celý OS ( zhroucení 1 programu = zhroucení OS) Neefektivní řízení (nelze manipulovat s prioritami programů) preemptivní multitasking (preemptive multitasking) o přidělování času CPU řídí OS (přes tzv. plánovač scheduler) CPU A1 A2 A3 A2 A1 A2 čas OS (Plánovač) Přerušení běhu apl. plánovačem Proces (Process) = kód aplikace s proměnnými, resources nahraný v paměti PC o Při ukončení aplikace OS vše automaticky z paměti smaže Vlákno (thread) o = posloupnost instrukcí CPU ( program ). Každý proces = min. 1 vlákno (main thread) 1

o Aplikace může mít více vláken (multithread) operace na pozadí aplikace Přidělování času vláknům v rámci procesu řídí scheduler (preemptivní princip) Ovladač zařízení (device driver) o speciální program, který přímo přistupuje na HW a zpřístupňuje jej OS. OS nabízí HW prostřednictvím Hardware abstraction layer (HAL) o např. programy nemohou ovládat graf. kartu přímo, pouze přes ovladač DLL knihovna (Dynamic Linked Library) o = cca *.exe, ale není samostatně spustitelný o Princip: program = metody, základ do exe, zbytek do DLL, pokud v programu volána metoda, která je v DLL (není v exe) OS si ji nahraje z disku o Výhody: rychlost, několik procesů může sdílet kód jedné DLL, možnost úprav funkcí programů Historie Windows 1983 Windows 1.0 o Spíše přepínač aplikací pro MS-DOS 1992 Windows 3.1 o Kooperativní multitasking, stále nadstavba MS-DOS, 16-bitový OS o Podpora chráněného režimu x86 (až 16MB paměti) o Prodej: 50 000 000 1993 Windows NT 3.1 o NT = pro firemní uživatele o Zcela nové jádro, podpora 32b procesorů, preemptivní multitasking, bezpečnost o Pokračovatelé: NT 3.51 (1995) považována za stabilní 1995 Windows 95 2

o Spojení MS-DOS 7.0 a Windows, 32b, preemptivní multitasking, podpora Plug n Play o Prodej: 150 000 000 o Pokračovatelé: Windows 98, Me 2000 Windows 2000 (NT 5.0) o spojení 9x (vzhled, multimédia) a NT (jádro, bezpečnost) 2001 Windows XP (NT 5.1) o = vylepšené 2000, nový vzhled, rychlejší o První systém společný pro firmy i domácnosti 2007 Windows Vista (NT 6.0) o nové technologie (WPF, WCF, Aero), masivní příklon k.net Architektura OS Windows pro W95 a novější architektura klient server o obousměrná komunikace o klient = běžící procesy o server = OS vykonává operace dle přání klientů klientům zasílá zprávy o změnách v OS (uživatel pohnul s myší, ) Win32 API (WinAPI) API = Application Programming Interface Zapouzdřuje veškerou funkčnost OS funkce (metody), datové struktury, datové typy o Tisíce funkcí (= metod), cca 300 zpráv, desítky struktur Pohled programátora: OS = API, programování pod Windows = volání WinAPI funkcí Ukryto v DLL knihovnách v adresáři Windows/System(32), základ: o kernel32.dll jádro OS (správa paměti, I/O, scheduler) o user32.dll uživatelské rozhraní o gdi32.dll vykreslování obrazu SDK (Software Development Kit) o = balíček všeho potřebného pro vývoj programů, = přístup k WinAPI o pro programování v C/C++ = součást Visual Studia, pro programování v.net není (bezpodmínečně) nutný Z pohledu programátora Typy aplikací Od W 1.0 (W95) stejný programovací model WinAPI nové verze W = rozšíření API, jediná změna =.NET Pohled do budoucna: příští Windows =.NET, WinAPI 3

Konzolové (Console applications) spojitý vývojový diagram S grafickým uživatelským rozhraním (GUI Graphics User Interface) nespojitý vv (zprávy, události) Možnosti vývoje GUI programů Přímé volání WinAPI funkcí o Nejlépe v C (C++) o Výhody: Nejrychlejší, nejmenší programy, lze naprogramovat vše o Nevýhody: obtížné, dlouhý vývoj Objektové nadstavby nad WinAPI o Nejznámější: Microsoft MFC (Foundation Class) součást placených VS, Borland VCL (Visual Componet Library), QT (zdarma, kód přenositelný na Linux) o Zapouzdřují WinAPI do tříd (MFC, QT C++, VCL Pascal, C++) o Výhody: pohodlnější vývoj, akceptovatelná rychlost, dobrá spolupráce s WinAPI RAD nástroje (Rapid Application Development) o Možnost konstrukce aplikace vizuální formou, kód píše IDE samo o Poprvé Borland Delphi (Pascal) a C++ Builder RAD nástroje pro VCL o Výhody: super rychlý vývoj, snadné o Nevýhody: pomalé a velké aplikace, obtížnější spolupráce s WinAPI.NET o Obsahuje WinForms zabalení GUI z WinAPI do tříd v.net o Budoucnost vývoje (nejenom) GUI aplikací pod Windows o Možnost RAD (Visual Studio) o Výhody: bezpečnost (programů správa paměti, OS omezenost práv, atd.), unifikace, pohodlný vývoj o Nevýhody: Nejpomalejší, obtížná spolupráce s WinAPI (ale lepší než Java Swing) Architektura programů pro Windows událostmi řízený model (schéma není úplně přesné): 4

Windows Form Title WM_PAINT WM_SIZE WM_KEYDOWN Zprávy Fronta zpráv Aplikace Smyčka Zpráv Nefrontové zprávy Procedura Okna Obsluha WM_PAINT Obsluha WM_SIZE Nezpracované zprávy DefWindowProc OS transformuje vše na zprávy (WM_ ) aplikace reagují na zprávy zasílané op. systémem každá aplikace má smyčku zpráv zprávy si vybírá, třídí a posílá je ke zpracování proceduře okna událost = pohyb myši, stisk klávesy, příkaz k překreslení okna aplikací nezpracované zprávy Zpráva (Message) frontové nefrontové odeslat zpět OS k výchozímu zpracování = 3 celá čísla (32b) o Identifikátor (konstanty WM_ ) o 2 parametry (lparam, wparam), význam dle identifikátoru 5

Příklady: o WM_SIZE velikost okna aplikace byla změněna Dolních 16b lparam = nová šířka okna Horních 16b lparam = nová výška okna wparam: stav okna (maximalizované, minimalizované, obnovené ) o WM_PAINT systém žádá aplikaci o překreslení obsahu svého okna Žádné parametry Možnost definice uživatelských zpráv WinAPI aplikace v C jen pro ilustraci (WinAPI funkce, konstanty, datové typy) #include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // vstupni bod aplikace (ekvivalent Main() z C#) int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, PSTR szcmdline, int icmdshow) HWND hwnd; MSG msg; WNDCLASS wndclass; // vytvorime tridu okna (jeho budouci podobu) wndclass.style = CS_HREDRAW CS_VREDRAW; wndclass.lpfnwndproc = WndProc; wndclass.cbclsextra = 0; wndclass.cbwndextra = 0; wndclass.hinstance = hinstance ; wndclass.hicon = LoadIcon (NULL, IDI_APPLICATION); wndclass.hcursor = LoadCursor (NULL, IDC_ARROW); wndclass.hbrbackground = (HBRUSH) GetStockObject(WHITE_BRUSH); wndclass.lpszmenuname = NULL; wndclass.lpszclassname = TEXT("MojeTridaOken"); RegisterClass(&wndclass); // registrace tridy okna hwnd = CreateWindow( TEXT("MojeTridaOken"), TEXT("Ahoj světe"), WS_OVERLAPPEDWINDOW, // window class name // Titulek okna // styl okna ktera tlacitka // v pravem hornim rohu, atd. 200, // initial x position 200, // initial y position 400, // initial x size 200, // initial y size NULL, NULL, hinstance, NULL) ; // handle nadrazeneho okna (neni) // handle pro menu (neni) // program instance handle // creation parameters ShowWindow(hwnd, icmdshow); // Windows na miste budouciho okna vymazou obrazovku UpdateWindow(hwnd); // okno aplikace vykreslime // smycka zprav - konci prijetim zpravy WM_QUIT (GetMessage() vraci 0) while (GetMessage(&msg, NULL, 0, 0)) 6

// GetMessage() ceka, az OS da do fronty nejakou zpravu TranslateMessage(&msg); // predzpracovani zpravy (napr. uprava zprav z klavesnice) DispatchMessage(&msg); // odesleme procedure okna ke zpracovani return 0; // program konci // procedura okna LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) HDC hdc; PAINTSTRUCT ps; RECT rect; // zpracujeme zpravy switch (message) case WM_PAINT: // kdykoli W potrebuji prekreslit obsah okna, zaslou WM_PAINT hdc = BeginPaint(hwnd, &ps); GetClientRect(hwnd, &rect); Ellipse(hdc, 100, 50, 200, 100); DrawText(hdc, TEXT("Ahoj"), -1, &rect, DT_SINGLELINE DT_CENTER DT_VCENTER); EndPaint(hwnd, &ps); return 0 ; case WM_DESTROY: PostQuitMessage(0); return 0 ; return DefWindowProc(hwnd, message, wparam, lparam); // nezpracovane odesleme OS k defaultmimu zpracovani Výsledek:.NET GUI (WinForms) aplikace using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using System.Drawing; namespace WinForms_Hello 7

class Program static void Main(string[] args) Form okno = new Form(); okno.text = "Ahoj světe"; okno.size = new Size(400, 200); okno.paint += new PaintEventHandler(okno_Paint); Application.Run(okno); static void okno_paint(object sender, PaintEventArgs e) Graphics g = e.graphics; Pen pero = new Pen(Color.Black); Brush stetec = new SolidBrush(Color.Black); Font font = new Font("Arial", 10); g.drawellipse(pero, 100, 50, 100, 50); g.drawstring("ahoj", font, stetec, 180, 80); Ne zcela dokonalá varianta lepší odvodit vlastní třídu od Form Výsledek: UI Windows základní pojmy Okno Základní prvek GUI Okno: o WinAPI vše je okno (okno, tlačítka, menu, ) o pohled uživatele (i programátora Winforms) okno = formulář, dialog Client area o Může obsahovat ovládací prvky (i např. dokument) 8

Aplikace Název nabídky KLIENTSKÁ OBLAST Stavový řádek o Lze do ní kreslit Neklientská část o Title bar, Menu bar, status bar, H, V scrollbars, o omezeně lze také kreslit Stavy okna: Maximalizované, minimalizované, skryté (hidden), normální (zaujímá část obrazovky) SDI/MDI aplikace SDI = Single dokument Interface (poznámkový blok) MDI = Multiple o více dokumentů v jedné aplikaci o Word, Visual Studio Hierarchie oken Každé okno o jednoznačné ID v systému Window handle (32b celé číslo) o nese info (handle) o dalších oknech Parent Window nadřazené okno o Windows desktop = nejvyšší okno Child window podřízené okno o Nemohou samostatně existovat zobrazovány v klientské oblasti parent w. o Změna rodiče ovlivní potomka (existence, viditelnost) o Typicky: ovládací prvky ( vše je okno ) Top-level Windows o Nemá vlastníka (resp. vlastník = desktop) o Hlavní okno apliakcí Owner vlastník 9

o Okno stejné úrovně (pouze top-level windows) o aplikace typu winamp (přehrávač + playlist window) Ovládací prvky Tlačítka, checkboxy, edit boxy Focus = aktivní ovládací prvek, přepínání tab Předvolený prvek (dialogy) reaguje na enter (OK), esc (Storno) Dialogy = okno s ovládacími prvky, zobrazení z hlavního okna, zpravidla neměnná velikost Určeny pro interakci s uživatelem Př.: dialog pro tisk souboru, nastavení aplikace Modální vs. nemodální zobrazení o Modální blokuje ostatní okna aplikace o Systémově modální blokuje všechny aplikace ( chyba při čtení z paměti ) o Nemodální neblokuje (např. výběr barvy v grafických aplikacích) 10