Najnowsza wersja dokumentu dostępna pod adresem
|
|
- Feliks Maciejewski
- 6 lat temu
- Przeglądów:
Transkrypt
1 Jacek Matulewski Hooks Wersja α Toruń, 15 grudnia 2006 Najnowsza wersja dokumentu dostępna pod adresem Źródła programów z tego skryptu (C++Builder 6):
2 Hook procedure MoŜliwe jest monitorowanie komunikatów lokalne (na poziomie jednego procesu, wątku) oraz globalne (przechwytywanie komunikatów przesyłanych między dowolnymi aplikacjami). W tym pierwszym przypadku funkcja zakotwiczona (hook procedure) moŝe znajdować się wewnątrz modułu, którego dotyczy np. zdefiniowana w pliku.exe, w którym ustawiany jest hak (hook) i do którego przesyłane są komunikaty. W drugim przypadku funkcja ta musi być umieszczona w bibliotece DLL, Ŝeby mogła być ładowana do przestrzeni adresowej innych aplikacji i tam uruchamiana. Zajmiemy się hakami na komunikatach dotyczących naciskania klawiszy identyfikowanych przez stałą WH_KEYBOARD. Są to dwa komunikaty: WM_KEYDOWN i WM_KEYUP (klawisz naciśnięty i zwolniony). Monitorowane są komunikaty wysłane do kolejki komunikatów. Zgodnie z dokumentacją WinAPI funkcja zakotwiczona dla tego haka powinna mieć sygnaturę zgodną z: int code, WPARAM wparam, LPARAM lparam ); // hook code Pierwszy parametr informuje o tym, czy **** // virtual-key code // keystroke-message information Znaczenie kolejnych parametrów jest identyczne, jak w komunikatach WM_KEYDOWN i WM_KEYUP. Parametr wparam informuje o kodzie naciśniętego klawisza (włączając w to klawisze specjalne). Parametr lparam zawiera zestaw informacji o kontekście naciśnięcia klawisza, m.in. ostatni bit (31) informuje o tym, czy klawisz jest naciskany, czy zwalniany. Local hook w pliku.exe Tworzymy projekt aplikacji. Na formie umieszczamy dwa przycisku TButton i komponent TLabel (zob. źródła). Listing HHOOK uchwythooka=null; void fastcall TForm1::Button1Click(TObject *Sender) //deklaracja typu funkcji obslugujacej hooka zwiazanego z komunikatem o nacisnietym klawiszu ); int code, // hook code WPARAM wparam, // virtual-key code LPARAM lparam // keystroke-message information //SetWindowHookEx(typ hhoka,adres funkcji obslugujacej,uchwyt biblioteki z funkcja obsl.,id. watku) //pilnujemy, zeby ustawiac tylko jeden hak if (uchwythooka==null) uchwythooka=setwindowshookex(wh_keyboard,(hookproc)keyboardproc,hinstance,0); if (uchwythooka==null) MessageBox(NULL,"ZałoŜenie hooka nie powiodło się","keyhook",mb_ok MB_ICONERROR); 2
3 else MessageBox(NULL,"ZałoŜenie hooka udało się","keyhook",mb_ok MB_ICONINFORMATION); void fastcall TForm1::Button2Click(TObject *Sender) bool wynik=unhookwindowshookex(uchwythooka); uchwythooka=null; if (wynik) MessageBox(NULL,"Usunięcie global hook udało się", "KeyHook", MB_OK MB_ICONINFORMATION); else MessageBox(NULL,"Usunięcie global hook nie powiodło się", "KeyHook", MB_OK MB_ICONERROR); int code, // hook code WPARAM wparam, LPARAM lparam ) //ShowMessage("Hook!"); // virtual-key code // keystroke-message information Form1->Label2->Caption=IntToStr(wParam); if((lparam & 0x )==0) Beep(150,50); else Beep(50,50); return CallNextHookEx(uchwytHooka,code,wParam,lParam); //przekazywanie hooka dalej Pilnujemy, aby tworzyć tylko jeden hak, bo inaczej dźwięk byłby odtwarzany w serii haków (wszystkie wskazują na KeyboardProc) wiele razy. Z jakiegoś powodu hak przestaje działać, gdy aplikacja traci fokus!!! Global hook w bibliotece DLL W przypadku global hook odpowiednią funkcję naleŝy umieścić w bibliotece DLL tak, Ŝeby mogła być wciągnięta do przestrzeni adresowej aplikacji, która otrzymać komunikat i wykonana przed wywołaniem funkcji obsługującej komunikaty (WndProc). Biblioteka ładowana jest do przestrzeni adresowej kaŝdej aplikacji, która otzyma komunikat związany z klawiaturą. Z tego powodu funkcja zwrotna DllMain/DllEntryPoint nie jest dobrym miejscem do ustawiania haka byłby on niepotrzebnie powielany przy zmianie focusu aplikacji. Zdefiniujemy wobec tego i wyeksportujemy funkcje ZalozHak i UsunHak, które będą umoŝliwiały ustawianie i usuwanie haka, a które będą uŝywały funkcji KeyboardProc zdefiniowanej w tej samej bibliotece. Funkcja ta będzie zresztą niemal identyczna, jak w przypadku haka lokalnego. Uwaga. Biblioteka z funkcją zakotwiczoną (hook procedure) wczytywana jest do przestrzeni adresowej kaŝdej aplikacji otrzymującej monitorowane komunikaty. Dlatego nie naleŝy ustawiać i usuwać haków w DllMain/DllEntryPoint. Tworzymy projekt biblioteki DLL. Listing 3
4 void stdcall ZalozHak(void) if (MessageBox(NULL,"Czy załoŝyć global hook?","keyhook",mb_yesno MB_ICONQUESTION)==ID_YES) //deklaracja funkcji obslugujacej hooka zwiazanego z komunikatem o nacisnietym klawiszu int code, WPARAM wparam, LPARAM lparam ); // hook code // virtual-key code // keystroke-message information //SetWindowHookEx(typ hhoka,adres funkcji obslugujacej,uchwyt biblioteki z funkcja obsl.,id. watku) uchwythooka=setwindowshookex(wh_keyboard,(hookproc)keyboardproc,uchwytdll/*biezaca DLL*/,NULL); if (uchwythooka==null) MessageBox(NULL,"ZałoŜenie hooka nie powiodło się","keyhook",mb_ok MB_ICONERROR); else MessageBox(NULL,"ZałoŜenie hooka udało się. Bedzie dzialal dotad, dopoki biblioteka bedzie w pamieci","keyhook",mb_ok MB_ICONINFORMATION); void stdcall UsunHak(void) if (MessageBox(NULL,"Czy usunąć global hook?","keyhook",mb_yesno MB_ICONQUESTION)==ID_YES) bool wynik=unhookwindowshookex(uchwythooka); if (wynik) MessageBox(NULL,"Usunięcie global hook udało się", "KeyHook", MB_OK MB_ICONINFORMATION); else MessageBox(NULL,"Usunięcie global hook nie powiodło się", "KeyHook", MB_OK MB_ICONERROR); Funkcje te naleŝy wyeksportować: extern "C" declspec(dllexport) void stdcall ZalozHak(void); extern "C" declspec(dllexport) void stdcall UsunHak(void); Do działania funkcje potrzebują dwóch zmiennych globalnych: HHOOK uchwythooka=null; HINSTANCE uchwytdll=null; Drugą z nich moŝemy zainicjować w metodzie wywoływanej po załadowaniu biblioteki: Listing 2 BOOL WINAPI DllMain(HINSTANCE hinstdll, DWORD fwdreason, LPVOID lpvreserved) switch(fwdreason) case DLL_PROCESS_ATTACH: 4
5 MessageBox(NULL,"Biblioteka KeyHook.dll załadowana do pamięci","inicjacja KeyHook",MB_OK MB_ICONINFORMATION); uchwytdll=hinstdll; break; case DLL_PROCESS_DETACH: MessageBox(NULL,"Usuwanie biblioteki KeyHook.dll z pamięci","kończenie KeyHook",MB_OK MB_ICONINFORMATION); break; return 1; Musimy jeszcze zdefiniować funkcję zwrotną wywoływaną w przypadku wykrycia monitorowanych komunikatów. MoŜemy ją skopiować z poprzedniego paragrafu usuwając jedynie linie odwołującą się do komponentu Label2. Listing 3 int code, // hook code WPARAM wparam, LPARAM lparam ) // MessageBox(NULL,"Hook!","",MB_OK); if (code>=hc_action) // virtual-key code if((lparam & 0x )==0) Beep(150,50); else Beep(50,50); // keystroke-message information return CallNextHookEx(uchwytHooka,code,wParam,lParam); //przekazywanie hooka dalej Zgodnie z informacją w dokumentacji WinAPI funkcja nie powinna być wykonana i jej działanie natychmiast przekazane do następnej funkcji zakotwiczonej jeŝeli parametr code jest mniejszy od zera (tj. od stałej HC_ACTION). Skompilujmy projekt (Ctrl+F9). Moglibyśmy teraz przygotować aplikację ładującą tak przygotowaną bibliotekę do pamięci i wywołującą funkcję ZalozHak, ale moŝemy teŝ po prostu uruchomić tę funkcje z linii komend poleceniem: rundll32 KeyHook,ZalozHak Pojawi się okno informujące o wczytaniu biblioteki do pamięci. Następnie pytanie o to, czy wczytać hak odpowiadamy tak. I wreszcie zobaczymy informację z rysunku 1. Nie klikajmy na razie OK, bo spowodowałoby to usunięcie biblioteki z hakiem z pamięci. Póki to okno jest widoczne, czyli dopóki biblioteka jest w pamięci, to kaŝde naciśnięcie klawisza powoduje wyemitowanie krótkiego sygnału dźwiękowego o tonie zaleŝącym od tego, czy klawisz jest przyciskany, czy zwolniony. JeŜeli zmienimy aktywną aplikację na inną i naciśniemy klawisz, to nasza biblioteka zostanie załadowana i do jej przestrzeni adresowej (dowodzi tego komunikat o załadowaniu biblioteki). 5
6 Generator liczb losowych Generowanie liczb losowych w komputerach, maszynach z natury w pełni deterministycznych, jest problemem nie do pokonania. W zamian korzystamy z szybko zmiennych funkcji, które inicjowane bieŝącym czasem generują tzw. liczby pseudolosowe. Z punktu widzenia szyfrowania danych lub innych zastosowań związanych z bezpieczeństwem moŝe to jednak być niewystarczające. Jest jednak jeden element, który w systemach komputerowych nie jest w pełni przewidywalny uŝytkownik. Ta sztuczka, podobnie jak w dowodzie twierdzenia Gödla-Malcewa, pozwala przerzucenie pomostu między dwoma, z pozoru całkowicie odrębnymi światami. PoniŜszy projekt nie jest w pełni działającą realizacją generatora liczb losowych, a jedynie szkicem pomysłu, w jaki sposób taki generator zrealizować. Jego zadaniem będzie zapełnianie wskazanego pliku liczbami, co do których nie moŝe być wątpliwości, Ŝe są całkowicie losowe. Zapisywanie tych liczb nie będzie jednak tak szybkie, aby starczyło np. przy wielkich obliczeniach numerycznych. Pomysł jest następujący: załoŝymy hak na zdarzenia związane z klawiaturą, a dokładnie na zwalnianie klawiszy (aby zapobiec wykorzystaniu komunikatów związanych z automatycznym powtarzaniem przy stale naciśniętym klawiszu). Następnie do pliku będziemy zapisywali ostatnią cyfrę w ilości milisekund, jaka w momencie naciśnięcia klawisza minęła od włączenia komputera (znana juŝ nam funkcja GetTickCount). Milisekundy (tysięczne części sekundy) biegną tak szybko, Ŝe człowiek nie jest zupełnie w stanie kontrolować palców w tej skali czasu. Oczywiście istnieją moŝliwości oszukiwania naszego generatora: moŝna wyobrazić sobie aplikację, która będzie sztucznie generować komunikaty. Ale to zagadnienie do zupełnie innej historii. Tworzymy projekt biblioteki DLL (C++; Use VCL, VC++ Style DLL). Umieszczamy w niej i eksportujemy funkcje ZalozHak i UsunHak o identycznych sygnaturach i niemal identycznej zawartości jak, w poprzednim projekcie (usuwamy jedynie wywołania funkcji MessageBox). Podobnie funkcje DllMain. Zresztą one są podobne w większości bibliotek DLL związanych z hakami. void stdcall ZalozHak(void) 6
7 //deklaracja funkcji obslugujacej hooka zwiazanego z komunikatem o nacisnietym klawiszu int code, // hook code WPARAM wparam, // virtual-key code LPARAM lparam ); // keystroke-message information //SetWindowHookEx(typ hhoka,adres funkcji obslugujacej,uchwyt biblioteki z funkcja obsl.,id. watku) uchwythooka=setwindowshookex(wh_keyboard,(hookproc)keyboardproc,uchwytdll/*biezaca DLL*/,NULL); if (uchwythooka==null) MessageBox(NULL,"Hook setting failed","truerandomnumbersgenerator.dll",mb_ok MB_ICONERROR); void stdcall UsunHak(void) bool wynik=unhookwindowshookex(uchwythooka); if (!wynik) MessageBox(NULL,"Hook unhooking failed", "TrueRandomNumbersGenerator.dll", MB_OK MB_ICONERROR); Inne zadania będzie jednak realizować funkcja zakotwiczona. Jednak zanim przejdziemy do jej definiowania przygotujmy osobny moduł Kolejka, w którym zdefiniujemy klasę implementującą kolejkę. Do przechowywania jej elementów wykorzystamy zwykły plik tekstowy. O ile dodawanie elementów na koniec pliku nie stanowi Ŝadnego problemu, to zdejmowanie elementu z początku tak pomyślanej kolejki jest powaŝnym problemem: Plik nagłówka modułu: #ifndef KolejkaH #define KolejkaH #include <windows.h> //typedef unsigned char byte; typedef unsigned short TCyfra; class Kolejka public: virtual void WstawNaKoniec(const TCyfra element) = 0; virtual TCyfra ZdejmijZPoczatku(void) = 0; virtual unsigned int64 IleZostalo(void) const = 0; ; class KolejkaPlik : public Kolejka 7
8 public: KolejkaPlik(const char nazwapliku[max_path]) :Kolejka() strncpy(this->nazwapliku,nazwapliku,max_path); ; void WstawNaKoniec(const TCyfra); TCyfra ZdejmijZPoczatku(void); unsigned int64 IleZostalo(void) const; private: char nazwapliku[max_path]; ; class KolejkaPamiec : public Kolejka //vector<char> ; #endif Plik źródłowy modułu: #pragma hdrstop #include "Kolejka.h" #include <fstream.h> #include <SysUtils.hpp> #pragma package(smart_init) void KolejkaPlik::WstawNaKoniec(const TCyfra cyfra) //MessageBox(NULL,nazwaPliku,nazwaPliku,MB_OK); ofstream plik_wy;plik_wy.open(nazwapliku,ios::out ios::app); plik_wy << cyfra; plik_wy.close(); TCyfra KolejkaPlik::ZdejmijZPoczatku(void) if (!FileExists(nazwaPliku)) throw Exception("File with random numbers storage does not exist!"); 8
9 //return -1; char nazwapliku_new[max_path]; strcpy(nazwapliku_new,nazwapliku); strcat(nazwapliku_new,".tmp"); char nazwapliku_bak[max_path]; strcpy(nazwapliku_bak,nazwapliku); strcat(nazwapliku_bak,".bak"); ifstream plik_we(nazwapliku,ios::in); ofstream plik_wy(nazwapliku_new,ios::out); char char_random='-'; plik_we.get(char_random); //tu trzeba zrobic kasowanie tej cyfry for (;plik_we;) char znak; plik_we.get(znak); if (!plik_we.eof()) plik_wy << znak; plik_we.close(); plik_wy.close(); //DeleteFile(nazwaPliku_bak); MoveFileEx(nazwaPliku,nazwaPliku_bak,MOVEFILE_REPLACE_EXISTING); MoveFile(nazwaPliku_new,nazwaPliku); //MessageBox(NULL,((AnsiString)char_random).c_str(),"",MB_OK); return char_random-48; unsigned int64 KolejkaPlik::IleZostalo(void) const HANDLE hfile = CreateFile( nazwapliku, 0, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); DWORD dlugoscplikuhigh=0; DWORD dlugoscplikulow = GetFileSize(hFile, &dlugoscplikuhigh); CloseHandle(hFile); unsigned int64 dlugoscpliku=0x *dlugoscplikuhigh+dlugoscplikulow; return dlugoscpliku; Obiekt reprezentujący kolejkę tworzymyw funkcji DllMain: HHOOK uchwythooka=null; HINSTANCE uchwytdll=null; 9
10 enum TMiejscePrzechowywania mpplik,mppamiec miejsceprzechowywania=mpplik; Kolejka* kolejka; #pragma argsused BOOL WINAPI DllMain(HINSTANCE hinstdll, DWORD fwdreason, LPVOID lpvreserved) switch(fwdreason) case DLL_PROCESS_ATTACH: //MessageBox(NULL,"Biblioteka TrueRandomNumbersGenerator.dll załadowana do pamięci","inicjacja TrueRandomNumbersGenerator.dll",MB_OK MB_ICONINFORMATION); uchwytdll=hinstdll; switch(miejsceprzechowywania) break; case mpplik: char nazwapliku[max_path]; GetTempPath(MAX_PATH,nazwaPliku); //katalog TEMP= strcat(nazwapliku,"truerandom.txt"); //MessageBox(NULL,nazwaPliku,nazwaPliku,MB_OK); kolejka=new KolejkaPlik(nazwaPliku); break; case DLL_PROCESS_DETACH: //MessageBox(NULL,"Usuwanie biblioteki TrueRandomNumbersGenerator.dll z pamięci","kończenie TrueRandomNumbersGenerator.dll",MB_OK MB_ICONINFORMATION); break; return 1; Nasza funkcja zakotwiczona będzie dokładać elementy do kolejki: int code, // hook code WPARAM wparam, // virtual-key code LPARAM lparam // keystroke-message information ) //MessageBox(NULL,"Hook!","Inicjacja KeyHook",MB_OK MB_ICONINFORMATION); if (code>=hc_action & ((lparam & 0x )!=0)) long ticks=gettickcount(); TCyfra random=ticks-10*(ticks/10); kolejka->wstawnakoniec(random); //if((lparam & 0x )==0) Beep(150,50); 10
11 //else Beep(50,50); return CallNextHookEx(uchwytHooka,code,wParam,lParam); //przekazywanie hooka dalej Zdefiniujemy równieŝ w bibliotece funkcję, która będzie zdejmowała z początki kolejki liczbę i prezentować ją uŝytkownikowi jako liczbę w pełni losową: TCyfra stdcall TrueRandom(void) return kolejka->zdejmijzpoczatku(); Poza tym zdefiniujemy metodę, która będzie zwracała ilość liczb losowych w magazynie: unsigned int64 stdcall TrueRandomNumbersAmount(void) return kolejka->ilezostalo(); Korzystamy w niej z metody zdefiniowanej w klasie kolejki, która sprawdza po prostu wielkość pliku, w którym przechowywane są liczby. Obydwie funkcje muszą oczywiście zostać udostępnione: extern "C" declspec(dllexport) TCyfra stdcall TrueRandom(void); extern "C" declspec(dllexport) unsigned int64 stdcall TrueRandomNumbersAmount(void); Przydałby się jeszcze osobny program zwykła aplikacja, która wczyta bibliotekę, wywoła funkcję zakładającą hak i testującą liczby losowe udostępniane przez bibliotekę. PoniŜej jest zbiór metod zdarzeniowych realizujących poszczególne zadania (naleŝy zdefiniować pole uchwytdll typu HINSTANCE): void fastcall TForm1::Button1Click(TObject *Sender) if (OpenDialog1->Execute()) Edit1->Text=OpenDialog1->FileName; Button2->Enabled=true; void fastcall TForm1::Button2Click(TObject *Sender) uchwytdll=loadlibrary(edit1->text.c_str()); if (uchwytdll==null) Label3->Caption="Załadowanie biblioteki nie powiodło się"; Label3->Font->Color=clRed; else Label3->Caption="Załadowanie biblioteki udało się"; Label3->Font->Color=clGreen; 11
12 void fastcall TForm1::Button3Click(TObject *Sender) if (FreeLibrary(uchwytDLL)) Label3->Caption="Usunięcie biblioteki z pamięci udało się"; Label3->Font->Color=clGreen; else Label3->Caption="Usunięcie biblioteki z pamięci nie powiodło się"; Label3->Font->Color=clRed; uchwytdll=null; void fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose) if (uchwytdll!=null) Button3Click(Sender); void fastcall TForm1::Button4Click(TObject *Sender) typedef bool (*TZalozHak)(void); TZalozHak ZalozHak=(TZalozHak)GetProcAddress(uchwytDLL, "ZalozHak"); if (ZalozHak==NULL) ShowMessage("Uruchomienie funkcji ZalozHak nie jest moŝliwe"); else if (ZalozHak()) Label3->Caption="ZałoŜenie haka udało się"; Label3->Font->Color=clGreen; else Label3->Caption="ZałoŜenie haka nie powiodło się"; Label3->Font->Color=clRed; void fastcall TForm1::Button5Click(TObject *Sender) 12
13 typedef short (*TTrueRandom)(void); TTrueRandom TrueRandom=(TTrueRandom)GetProcAddress(uchwytDLL,"TrueRandom"); if (TrueRandom==NULL) ShowMessage("Uruchomienie funkcji TrueRandom nie jest moŝliwe"); else ShowMessage("Liczba losowa: "+IntToStr(TrueRandom())); void fastcall TForm1::Button6Click(TObject *Sender) typedef bool (*TUsunHak)(void); TUsunHak UsunHak=(TUsunHak)GetProcAddress(uchwytDLL, "UsunHak"); if (UsunHak==NULL) ShowMessage("Uruchomienie funkcji UsunHak nie jest moŝliwe"); else if (UsunHak()) Label3->Caption="Usunięcie haka udało się"; Label3->Font->Color=clGreen; else Label3->Caption="Usunięcie haka nie powiodło się"; Label3->Font->Color=clRed; void fastcall TForm1::Button7Click(TObject *Sender) typedef unsigned int64 (*TIleZostalo)(void); TIleZostalo IleZostalo=(TIleZostalo)GetProcAddress(uchwytDLL, "TrueRandomNumbersAmount"); if (IleZostalo==NULL) ShowMessage("Uruchomienie funkcji TrueRandomNumbersAmount nie jest moŝliwe"); else ShowMessage(IleZostalo()); 13
Jak działają programy przechwytujące i. Hak na Windows
Atak Jacek Matulewski stopień trudności Imię domowego zwierzaka i bieżący rok to najczęściej wykorzystywany schemat haseł. Jednak, gdy hasło jest tak silne, że nie można go wykryć typowymi metodami, istnieje
Wskaźniki do funkcji i metod
Jacek Matulewski WWW: http://www.fizyka.umk.pl/~jacek/cpp/ wersja z dnia 3 listopada 2006 Najnowsza wersja: http://www.fizyka.umk.pl/~jacek/cpp/cpp-wskazniki2.pdf Źródła: http://www.fizyka.umk.pl/~jacek/cpp/cpp-wskazniki2.zip
Obliczenie azymutu ze współrzędnych wersja C++ Builder
Obliczenie azymutu ze współrzędnych wersja C++ Builder Specyfikacja problemu algorytmicznego Problem algorytmiczny: Obliczenie azymutów i długości, gdy dana jest tablica współrzędnych punktów (Nr X Y).
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Podstawy wykorzystania bibliotek DLL w skryptach oprogramowania InTouch
INFORMATOR TECHNICZNY WONDERWARE Informator Techniczny nr 60 04-12-2002 Podstawy wykorzystania bibliotek DLL w skryptach oprogramowania InTouch Wstęp PoniŜsza dokumentacja oparta na przykładach stworzonych
Program 14. #include <iostream> #include <ctime> using namespace std;
Program 14 Napisać: * funkcję słuŝącą do losowego wypełniania tablicy liczbami całkowitymi z podanego zakresu (*). Parametrami funkcji mają być tablica, jej długość oraz dwie liczby stanowiące krańce przedziału
KONSMETAL Zamek elektroniczny NT C496-L250 (RAPTOR)
KONSMETAL Zamek elektroniczny NT C496-L250 (RAPTOR) Instrukcja obsługi Podstawowe cechy zamka: 1 kod główny (Master) moŝliwość zdefiniowania do 8 kodów uŝytkowników długość kodu otwarcia: 6 cyfr długość
Allegro5 część 1 - Witaj Świecie! Projekt, inicjalizacja, tworzenie okna, czcionki. Autor: Kamil Krzyszczuk - C mons
Allegro5 część 1 - Witaj Świecie! Projekt, inicjalizacja, tworzenie okna, czcionki. Autor: Kamil Krzyszczuk - C mons 1.Wstęp Witam w pierwszej części mojego kursu za pomocą którego dowiesz się jak stworzyć
Programowanie na poziomie sprzętu. Programowanie w Windows API
Programowanie w Windows API Windows API Windows Application Programming Interface (API) to zestaw funkcji systemu operacyjnego Windows, które umożliwiają aplikacjom korzystanie z wszystkich usług systemu.
XII. Warunek wielokrotnego wyboru switch... case
XII. Warunek wielokrotnego wyboru switch... case 12.1. Gdy mamy więcej niŝ dwie moŝliwości Do tej pory poznaliśmy warunek if... else... Po co nam kolejny? Trudno powiedzieć, ale na pewno nie po to, Ŝeby
Program Opakowania zwrotne dla InsERT GT.
Program Opakowania zwrotne dla InsERT GT. Do czego słuŝy program? Program Opakowania zwrotne słuŝy do zarządzania opakowaniami zwrotnymi (butelkami, transporterami) w firmach handlujących napojami. Pozwala
IFiZR Laboratorium 5 Info
IFiZR Laboratorium 5 Info File->New->Project->Windows Application (DevC++) Kurs WinAPI: http://cpp0x.pl/kursy/kurs-winapi-c++/167 #include #include #include #include
KaŜdy z formularzy naleŝy podpiąć do usługi. Nazwa usługi moŝe pokrywać się z nazwą formularza, nie jest to jednak konieczne.
Dodawanie i poprawa wzorców formularza i wydruku moŝliwa jest przez osoby mające nadane odpowiednie uprawnienia w module Amin (Bazy/ Wzorce formularzy i Bazy/ Wzorce wydruków). Wzorce formularzy i wydruków
Akceleracja symulacji HES-AHDL. 1. Rozpoczęcie pracy aplikacja VNC viewer
Akceleracja symulacji HES-AHDL 1. Rozpoczęcie pracy aplikacja VNC viewer Rys. 1 Ultra VNCViewer Karta HES jest umieszczona w komputerze PC w pokoju 502 C-3 na serwerze VNC o adresie IP 149.156.121.112.
Tworzenie projektu asemblerowego dla środowiska Visual Studio 2008.
Dwiczenie 5. TEMAT: CEL: Tworzenie projektu asemblerowego dla środowiska Visual Studio 2008. Celem dwiczenia jest poznanie możliwości VS 2008 w zakresie tworzenia i uruchamiania aplikacji z kodem mieszanym
Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)
Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface) 1. Udostępnianie wszystkich prywatnych atrybutów do prezentacji, wprowadzenie standardu nazewnictwa plików nazwy plików
Przekazywanie argumentów wskaźniki
Przekazywanie argumentów wskaźniki klasyczne wywołanie wyliczenie i zwrotne przekazanie tylko jednej wielkości moŝliwość uŝycia zmiennych globalnych niebezpieczeństwa z tym związane wyjście wywołanie funkcji
Delphi 7 + Indy 10 Przykłady prostych aplikacji sieciowych
Jacek Matulewski, Sławek Orłowski http://www.phys.uni.torun.pl/~jacek/ Delphi 7 + Indy 10 Przykłady prostych aplikacji sieciowych Wersja α Ćwiczenia Toruń, 20 grudnia 2005 Najnowsza wersja tego dokumentu
Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.
Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice
Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5. Ćwiczenie 5 Aplikacja wielo-okienkowa
Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5 Ćwiczenie 5 Aplikacja wielo-okienkowa 1. Opracuj aplikację realizującą obliczenia na podstawie danych wpisywanych w komponencie
Programowanie strukturalne i obiektowe
Programowanie strukturalne i obiektowe Język C część I Opracował: Grzegorz Flesik Literatura: A. Majczak, Programowanie strukturalne i obiektowe, Helion, Gliwice 2010 P. Domka, M. Łokińska, Programowanie
Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
programowania Wykład: 5 Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania w C++ Instrukcje sterujące 2 dr Artur Bartoszewski
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,
Komunikaty w Windows. Jarosław Kuchta
Komunikaty w Windows Jarosław Kuchta Okna i procedury okien W Windows każde okno ma swoją procedurę sterującą. LRESULT CALLBACK WndProc ( HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { } gdzie:
Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu
Informatyka, Ćwiczenie 1 1. Uruchomienie Microsoft Visual C++ I. ZałoŜenie nowego projektu Wybieramy menu: File>New>Files jak na rys. poniŝej Zapisujemy projekt pod nazwą LAN, w katalogu d:\temp\lab typu
Podstawy obsługi aplikacji Generator Wniosków Płatniczych
Podstawy obsługi aplikacji Generator Wniosków Płatniczych 1. Instalacja programu Program naleŝy pobrać ze strony www.simik.gov.pl. Instalację naleŝy wykonań z konta posiadającego uprawnienia administratora
Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33
Programowanie w C++ Wykład 8 Katarzyna Grzelak 15 kwietnia 2019 K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe
FAQ: 00000014/PL Data: 26/11/2008 Komunikacja w protokole MPI za pomocą Global Data (GD) pomiędzy sterownikami S7-300
PoniŜszy dokument zawiera opis konfiguracji programu STEP7 dla sterowników SIMATIC S7 300/S7 400 w celu stworzenia komunikacji między dwoma stacjami S7 300 za pomocą sieci MPI i usługi komunikacyjnej Danych
Współpraca Integry z programami zewnętrznymi
Współpraca Integry z programami zewnętrznymi Uwaga! Do współpracy Integry z programami zewnętrznymi potrzebne są dodatkowe pliki. MoŜna je pobrać z sekcji Download -> Pozostałe po zalogowaniu do Strefy
Projektowanie i programowanie aplikacji biznesowych. Wykład 2
Projektowanie i programowanie aplikacji biznesowych Wykład 2 Kontrolki w Windows API Aby korzystać z kontrolek należy dołączyć plik nagłówkowy o nazwie commctrl.h oraz bibliotekę o nazwie libcomctl32.a.
Programowanie obiektowe zastosowanie języka Java SE
Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z
Programowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30
Programowanie w C++ Wykład 9 Katarzyna Grzelak 14 maja 2018 K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe plus
Program 6. Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje:
Program 6 Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje: Funkcja pobierz_osobe wczytuje dane osoby podanej jako argument. Funkcja wypisz_osobe
Informatyka II. Laboratorium Aplikacja okienkowa
Informatyka II Laboratorium Aplikacja okienkowa Założenia Program będzie obliczał obwód oraz pole trójkąta na podstawie podanych zmiennych. Użytkownik będzie poproszony o podanie długości boków trójkąta.
#line #endif #ifndef #pragma
8.1 Instrukcje preprocesorowe... 1 8.1.1 Instrukcja #define... 1 8.1.2 Instrukcje #pragma... 2 8.2 Polecenie _asm... 3 8.3 Polecenie declspec... 4 8.4 Definiowanie makr... 5 8.5 Programy wieloplikowe,
Zaawansowane aplikacje internetowe
Zaawansowane aplikacje internetowe AJAX 1 Celem tego laboratorium jest pokazanie moŝliwości technologii AJAX. W ramach ćwiczeń zostanie zbudowana prosta aplikacja, przechwytująca kliknięcia uŝytkownika
Komunikator internetowy w C#
PAŃSTWOWA WYśSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie Komunikator internetowy w C# autor: Artur Domachowski Elbląg, 2009 r. Komunikacja przy uŝyciu poczty internetowej
Znajdywanie adresu funkcji z parametrami
Pierwszy artykuł o dll injection wywołał duże zainteresowanie. Wiele osób szuka informacji na temat pisania trainerów do gier, których główną funkcjonalnością jest wywoływanie funkcji gier w określonym
Ćwiczenie 1. Przygotowanie środowiska JAVA
Ćwiczenie 1 Przygotowanie środowiska JAVA 1. Wprowadzenie teoretyczne Instalacja JDK (Java Development Kit) NaleŜy pobrać z java.sun.com środowisko i zainstalować je. Następnie naleŝy skonfigurować środowisko.
KORZYSTANIE Z CERTYFIKATU KWALIFIKOWANEGO W PROGRAMIE PŁATNIK
KORZYSTANIE Z CERTYFIKATU KWALIFIKOWANEGO W PROGRAMIE PŁATNIK a) WYMAGANIA WSTĘPNE Do korzystania z certyfikatu kwalifikowanego w programie Płatnik niezbędne jest : 1. Posiadanie certyfikatu kwalifikowanego
Dla każdej operacji łącznie tworzenia danych i zapisu ich do pliku przeprowadzić pomiar czasu wykonania polecenia. Wyniki przedstawić w tabelce.
Przygotować program tworzący tablicę dwuwymiarową zawierającą zestawy 10 2, 10 4, 10 6 liczb losowych zmiennoprzecinkowych. Korzystając z funkcji bibliotecznych uporządkować zawartość każdego (a) wiersza
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float
Globalne / Lokalne. Wykład 15. Podstawy programowania (język C) Zmienne globalne / lokalne (1) Zmienne globalne / lokalne (2)
Podstawy programowania (język C) Globalne / Lokalne Wykład 15. Tomasz Marks - Wydział MiNI PW -1- Tomasz Marks - Wydział MiNI PW -2- Zmienne globalne / lokalne (1) int A, *Q; // definicja zmiennych globalnych
Wstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać)
Języki i Paradygmaty Programowania Laboratorium 1 Obiekty i klasy C++ Wstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać) UWAGA! Umiejętność tworzenia
Program do obsługi ubezpieczeń minifort
Program do obsługi ubezpieczeń minifort Dokumentacja uŝytkownika Rozliczanie z TU Kraków, grudzień 2008r. Rozliczanie z TU Pod pojęciem Rozliczenie z Towarzystwem Ubezpieczeniowym będziemy rozumieć ogół
C-geo definicja/edycja obiektów, zapis danych w formacie shape
C-geo definicja/edycja obiektów, zapis danych w formacie shape 1. ZałoŜenie projektu i tabeli. Aby rozpocząć pracę przy aktualizacji mapy zasadniczej, naleŝy załoŝyć nowy projekt, w nim nową tabelę roboczą,
PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec
PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych
Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik
Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor
4. Wyrzuć wyjątek jeśli zmienna ist nie istnieje bloki: try, catch i wyrzucanie wyjątku
Lista 7 Zad. 1 Pierwsza wersja programu 1. Przygotuj plik do w: plik tekstowy z pojedynczą liczbą. Umieść go w tym samym folderze, co projekt (*.cpp). 2. Nazwa pliku name nazwa zmiennej może być dowolna
Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.
Część XVII C++ Funkcje Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład. 2 3 Tworzymy deklarację i definicję funkcji o nazwie pobierzln() Funkcja
Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1
Typy złożone Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy podstawowe Typy całkowite: char short int long Typy zmiennopozycyjne float double Modyfikatory : unsigned, signed Typ wskaźnikowy
Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady
Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służy
DLL Injection. Przejęcie kontroli nad procesem
MACIEJ PAKULSKI DLL Injection Stopień trudności Współczesne systemy operacyjne pozwalają uruchomić wiele procesów, z których część posiada wyższy priorytet niż inne oraz może korzystać z większej ilości
ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje
Funkcje (podprogramy) Mianem funkcji określa się fragment kodu, który może być wykonywany wielokrotnie z różnych miejsc programu. Ogólny zapis: typ nazwa(argumenty) ciało funkcji typ określa typ danych
W oknie na środku, moŝna wybrać język, który będzie językiem domyślnym dla TC. Wybierzmy zatem język polski:
1. Do czego słuŝy Total Commander? Total Commander jest dwu-panelowym menedŝerem plików, z powodzeniem zastępującym windowsowego Eksploratora. Dzięki niemu, operacje na plikach i folderach, takiej jak
Wprowadzenie do systemu Delphi
50 Rozdział 4 Wprowadzenie do systemu Delphi W niniejszym rozdziale zilustrujemy na prostych przykładach proces programowania wizualno-obiektowego w systemie Delphi. 4.1 Znajdowanie elementu maksymalnego
POWIADOMIENIE SMS ALBATROSS S2. Opis aplikacji do programowania
POWIADOMIENIE SMS ALBATROSS S2 Opis aplikacji do programowania 1 Spis treści 1. OPIS I URUCHOMIENIE APLIKACJI DO PROGRAMOWANIA ALBATROSS S2... 3 2. NAWIĄZANIE POŁĄCZENIA APLIKACJI Z URZĄDZENIEM ALBATROSS
Systemy operacyjne I Laboratorium Część 3: Windows XP
Uniwersytet Rzeszowski Katedra Informatyki Opracował: mgr inŝ. Przemysław Pardel v1.01 2009 Systemy operacyjne I Laboratorium Część 3: Windows XP Zagadnienia do zrealizowania (3h) 1. Ściągnięcie i instalacja
Aby pobrać program FotoSender naleŝy na stronę www.fotokoda.pl lub www.kodakwgalerii.astral.pl i kliknąć na link Program do wysyłki zdjęć Internetem.
FotoSender 1. Pobranie i instalacja programu Aby pobrać program FotoSender naleŝy na stronę www.fotokoda.pl lub www.kodakwgalerii.astral.pl i kliknąć na link Program do wysyłki zdjęć Internetem. Rozpocznie
2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...
KORZYSTANIE Z KONTROLKI.NET LENDEVICERS232 DODAWANIE KONTROLKI DO ZBIORU KOMPONENTÓW DOSTĘPNYCH W PALECIE TOOLBOX (ŚRODOWISKA PROGRAMISTYCZNE FIRMY MICROSOFT) W środowisku programistycznym (Visual C++,
Zasady Programowania (Projektowanie) C++ - część 6 1/9 Programowanie Wizualno Obiektowe (3)
Zasady Programowania (Projektowanie) C++ - część 6 1/9 Zasady Programowania (Projektowanie) C++ część 6 Temat: Programowanie Wizualno Obiektowe. Komponenty podstawowe, aplikacje wielookienkowe, menu z
Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.
Zmienne powłoki Zmienne powłoki (shell variables) to tymczasowe zmienne, które mogą przechowywać wartości liczbowe lub ciągi znaków. Związane są z powłoką, Przypisania wartości do zmiennej następuje poprzez
Jak Windows zarządza pamięcią?
Jak Windows zarządza pamięcią? System Windows definiuje dwa typy pamięci, często mylone przez użytkowników. Pamięć fizyczna (pamięc RAM zainstalowana w komputerze) Pamięć widziana przez daną aplikację
Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Język ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
INWENTARYZACJA W PROGRAMIE INTEGRA
INWENTARYZACJA W PROGRAMIE INTEGRA Niniejszy dokument przedstawia zasady przeprowadzania Inwentaryzacji w programie Integra. Przydatną funkcją jest moŝliwość tworzenia arkuszy inwentaryzacyjnych wykorzystywanych
Co nie powinno być umieszczane w plikach nagłówkowych:
Zawartość plików nagłówkowych (*.h) : #include #define ESC 27 dyrektywy dołączenia definicje stałych #define MAX(x,y) ((x)>(y)?(x):(y)) definicje makr int menu(char* tab[], int ilosc); struct
Podstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
Dostęp do poczty przez www czyli Kerio Webmail Poradnik
Dostęp do poczty przez www czyli Kerio Webmail Poradnik Spis treści 1. Przeglądarka internetowa 2. Logowanie do Kerio Webmail 3. Zmiana hasła 4. Specjalne właściwości i ograniczenia techniczne Webmaila
Instalacja i opis podstawowych funkcji programu Dev-C++
Instalacja i opis podstawowych funkcji programu Dev-C++ Przed rozpoczęciem programowania musimy zainstalować i przygotować kompilator. Spośród wielu dostępnych kompilatorów polecam aplikację Dev-C++, ze
Komunikacja z wykorzystaniem Protokołu TCP oraz funkcji AG_SEND/AG_RECV
PoniŜszy dokument zawiera opis konfiguracji programu STEP7 dla sterowników Simatic S7-300/ S7-400, w celu stworzenia komunikacji pomiędzy dwoma stacjami S7-300 za pomocą sieci Industrial Ethernet protokołu
Laboratorium nr 4. Temat: SQL część II. Polecenia DML
Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze
Wersja dokumentacji1.01. TeleToken API
Wersja dokumentacji1.01 TeleToken API Spis treści STATUS ZWRACANY PRZEZ FUNKCJE...1 OGÓLNE ZASADY...1 INTERPRETACJA STATUSU...1 FUNKCJE BIBLIOTEKI...3 TVTTAPI_INITIALIZE...3 TVTTAPI_RANDOMIZE...3 TVTTAPI_RAND...3
Program dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku.
Program 7 Program dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku. #include #include using namespace std; int main()
Kalkulator. Programowanie komputerów. Kalkulator możliwe udoskonalenia. Kalkulator. Kalkulator. Kalkulator możliwe udoskonalenia
Programowanie komputerów Relatywnie prosty interfejs użytkownika Złożony algorytm. Elementy obowiązkowe (2,) Klawisze: numeryczne..9, znak dziesiętny (","), operacje arytmetyczne, -, *, /, wynik () oraz
POWIADOMIENIE SMS ALBATROSS S2. Opis aplikacji do programowania
POWIADOMIENIE SMS ALBATROSS S2 Opis aplikacji do programowania 1 Spis treści 1. OPIS I URUCHOMIENIE APLIKACJI DO PROGRAMOWANIA ALBATROSS S2... 3 2. NAWIĄZANIE POŁĄCZENIA APLIKACJI Z URZĄDZENIEM ALBATROSS
Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji BSEND/BRCV
PoniŜszy dokument zawiera opis konfiguracji programu STEP7 dla sterowników Simatic S7 300/S7 400, w celu stworzenia komunikacji między dwoma stacjami S7 300 za pomocą sieci Industrial Ethernet, protokołu
Tworzenie aplikacji Windows Biblioteki DLL. Aplety panelu sterowania (C++ Builder)
Jacek Matulewski http://www.phys.uni.torun.pl/~jacek/ Tworzenie aplikacji Windows Biblioteki DLL. Aplety panelu sterowania (C++ Builder) Ćwiczenia Toruń, 13 grudnia 2002 Najnowsza wersja tego dokumentu
Microsoft Visual C++
Microsoft Visual C++ Typy aplikacji okna dialogowe Typy aplikacji Multiple Document Obsługa zdarzeń - komunikaty W celu obsługi zdarzeń pochodzących z wielu źródeł funkcja MainLoop odbiera komunikaty systemowe
Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe
Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)
Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char
Programowanie C++ Informacje wstępne #include - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char = -128 do 127, unsigned char = od
Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych
Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych Jacek Matulewski Materiały dla Podyplomowego Studium Programowania i Zastosowania Komputerów, sekcja Projektowanie i tworzenie aplikacji
Instrukcja laboratoryjna cz.3
Języki programowania na platformie.net cz.2 2015/16 Instrukcja laboratoryjna cz.3 Język C++/CLI Prowadzący: Tomasz Goluch Wersja: 2.0 I. Utworzenie projektu C++/CLI z interfejsem graficznym WPF 1 Cel:
lekcja 8a Gry komputerowe MasterMind
lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych
Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów
Funkcje. Spotkanie 5 Dr inż. Dariusz JĘDRZEJCZYK Tworzenie i używanie funkcji Przekazywanie argumentów do funkcji Domyślne wartości argumentów Przeładowanie nazw funkcji Dzielenie programu na kilka plików
C#.NET. Podsłuchiwanie klawiatury
C#.NET. Podsłuchiwanie klawiatury Atak Sławomir Orłowski, Maciej Pakulski stopień trudności Skomplikowane i często aktualizowane hasło, które oprócz liter zawiera również cyfry i znaki specjalne, to bardzo
Politechnika Wrocławska Urządzenia peryferyjne sprawozdanie z laboratorium 1. Zadania do wykonania 2. Wstęp teoretyczny 3. Realizacja ćwiczenia
Politechnika Wrocławska Urządzenia peryferyjne sprawozdanie z laboratorium Ćwiczenie 12: Kamera USB 02.01.12 r. Michał Kaczara (181132) Pn / TN, 14:15 17:00 Prowadzący: dr inż. Jarosław Mierzwa 1. Zadania
int suma; pralka czerwona; // definicja egzemplarza obiektu pralka * wskaŝ; // definicja wskaźnika pralka & ruda = czerwona; // definicja referencji
Pojęcie klasy Typ zmiennych informuje: o ich rozmiarze w pamięci, jaki rodzaj informacji mogą zawierać, jakie działania moŝna na nich wykonywać. W C++ dane mogą zostać powiązane z funkcjami - znaczy to,
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Certyfikat niekwalifikowany zaufany Certum Silver. Instrukcja dla uŝytkowników Windows Vista. wersja 1.1 UNIZETO TECHNOLOGIES SA
Certyfikat niekwalifikowany zaufany Certum Silver Instrukcja dla uŝytkowników Windows Vista wersja 1.1 Spis treści 1. POBRANIE CERTYFIKATU SILVER... 3 2. IMPORTOWANIE CERTYFIKATU DO PROGRAMU POCZTA SYSTEMU
Instalacja Czytnika Kart w systemie Windows 7, Windows XP, Windows Vista, Windows 2000.
Instalacja Czytnika Kart w systemie Windows 7, Windows XP, Windows Vista, Windows 2000. Dokumentacja UŜytkownika SPIS TREŚCI I. INSTALACJA CZYTNIKA KART W SYSTEMIE WINDOWS... 3 II. PONOWNA INSTALACJA CZYTNIKA
Programowanie strukturalne język C - wprowadzenie
Programowanie strukturalne język C - wprowadzenie Dr inż. Sławomir Samolej D102 C, tel: 865 1766, email: ssamolej@prz-rzeszow.pl WWW: ssamolej.prz-rzeszow.pl Cechy programowania strukturalnego Możliwość
Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse
Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse 1 Cel laboratorium: Nabycie umiejętności przygotowywania testów akceptacyjnych za pomocą narzędzia FitNesse 1. Wg wskazówek
Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:
Zakres laboratorium: definiowanie struktur terminologia obiektowa definiowanie klas funkcje składowe klas programy złożone z wielu plików zadania laboratoryjne Laboratorium nr 12 Temat: Struktury, klasy.
5.9 Modyfikacja gry Kółko i krzyżyk
274 5.9 Modyfikacja gry Kółko i krzyżyk Zajmiemy się obecnie grą, której plansza jest widoczna na rys. 5.17 (aplikacja Do15.bpr). Rysunek 5.17: Plansza do gry śuma do 15 Jej celem jest zaznaczenie cyfr,
Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak
Katedra Elektrotechniki Teoretycznej i Informatyki wykład 12 - sem.iii M. Czyżak Język C - preprocesor Preprocesor C i C++ (cpp) jest programem, który przetwarza tekst programu przed przekazaniem go kompilatorowi.
Kompilator języka C na procesor 8051 RC51 implementacja
Kompilator języka C na procesor 8051 RC51 implementacja Implementowane typy danych bit 1 bit char lub char signed 8 bitów char unsigned 8 bitów int lub signed int 16 bitów unsigned int 16 bitów long lub
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie
Przykładowa dostępna aplikacja w Visual Studio - krok po kroku
Przykładowa dostępna aplikacja w Visual Studio - krok po kroku Zadaniem poniższego opisu jest pokazanie, jak stworzyć aplikację z dostępnym interfejsem. Sama aplikacja nie ma konkretnego zastosowania i