Command Prompt (8)
NAREDBA;
md
Devetom naredbom mkdir, odnosno skraćeno md (engl. make directory - stvori direktorij) stvaramo novi direktorij ili poddirektorij.
Sintaksa;
md [drive:]path
objašnjenje;
drive: - označava disk na kojem će se stvoriti novi direktorij, ako se ništa ne navede sporazumjeva se trenutno aktivni disk
path - označava stazu postojećeg direktorija u kojemu će biti stvoreni novi, ako se staza ne navede novi direktorij biti će stvoren u trenutno aktivnom direktoriju
(svakom novom direktoriju ili poddirektoriju moramo dati ime)
Primjeri;
a) stvori na disku "C" novi direktorij "myxp"
md c:myxp
b) na disku "C", u direktoriju "myxp", stvori novi direktorij, odnosno poddirektorij, "slike"
md c:myxpslike
napomena!
- Ako zadamo parameter "staza" onda moramo prije imena novog direktorija staviti obrnutu kosu crtu " " (back slash - "AltGr"+"").
Npr. (novi direktorij "slike")
md c:myxpslike
- Možemo napraviti direktorije sa istim imenom, ali njihove staze moraju biti različite.
Command Prompt (7)
dir (pretraživanje datoteka i direktorija)
Pomoću naredbe dir možemo izvršiti pretraživanje, odnosno pronalaženje određenih datoteka ili direktorija na našem računalu.
Primjeri;
a) pronađi sve datoteke sa nastavkom ".txt" u tekućem direktoriju i u svim njegovim poddirektorijima
dir *.txt /s
objašnjenje;
dir *.txt - izlistava sve (samo) datoteke koje imaju nastavak .txt (* je posebni simbol, više o posebnim simbolima na kraju ovog posta)
/s - izlistava direktorij i poddirektorije
b) pronađi na disku "D:" (u svim direktorijima i poddirektorijima) sve datoteke sa nastavkom ".rar" i prekini izlistavanje kada se ekran napuni informacijama
dir d:*.rar /s /p
objašnjenje;
dir d:*.rar - izlistava sve datoteke na disku "d:" koje imaju nastavak .rar
/s - izlistava (pretražuje) sve direktorije i poddirektorije
/p - izlistava sadržaj ekran po ekran
c) pronađi sve direktorije imena "help" na disku "d:"
dir d:help /s /p
objašnjenje;
dir d:help - izlistava sve direktorije imena "help" na disku "d:"
NAREDBA;
find
Naredbom find (engl. find - pronađi) tražimo određeni niz znakova (riječ ili rečenicu) u datoteci ili datotekama. Ako se izostave opcije, naredba "find" izlistava sve redove određene datoteke, odnosno datoteka, u kojima je pronađena zadata riječ.
napomena!
Naredba "find" je osjetljiva na veličinu slova (case-sensitive).
Sintaksa;
find [/v] [/c] [/n] [/i] "string" [[drive:][path]filename[ ...]]
objašnjenje;
/v - izlistaj samo redove koji ne sadrže navedenu riječ
/c - izlistaj koliko je redova (njihov broj) koji sadrže navedenu riječ
/n - izlistaj i redni broj reda koji sadrži navedenu riječ
/i - ignoriraj osjetljivost na mala/velika slova (case-sensitive)
"string" - tekst koji se traži (traženi tekst mora biti pod navodnicima)
[drive:][path]filename- disk, staza i ime datoteke koja se pretražuje
Primjer;
Pronađi u direktoriju "Myxp" sve tekstualne datoteke (.txt) koje sadrže riječ "blog myxp" i prikaži redni broj reda koji sadrži navedenu riječ.
find /n "blog myxp" c:myxp*.txt
objašnjenje;
/n - izlistava i redni broj reda koji sadrži navedenu riječ
"blog myxp" - tekst koji tražimo
c:myxp - staza do direktorija u kojemu tražimo
*.txt - izlistava (pretražuje) sve tekstualne datoteke (.txt)
Posebni simboli (engl. wildcard character)
Pomoću posebnih simbola možemo zamjeniti jedan ili više znakova u imenu datoteke (ili direktorija) i time omogućiti izbor većeg broja datoteka jednom jedinom specifikacijom.
* (asterisk) - zamjenjuje jedan ili više znakova
? - zamjenjuje samo jedan znak
[...] - zamjenjuje bilo koji znak u nekom rasponu
Riječ, dvije;
case-sensitive - osjetljivo na veličinu slova Svojstvo programa koji razlikuje velika i mala slova.
Command Prompt (6)
Pomoću naredbe "dir" i prekidača "/o:" možemo zadati redosljed izlistavanja (sortirati) imena datoteka i direktorija. Ako ne zadamo redosljed sortiranja, naredba "dir" izlistava prvo direktorije po abecednom redu, a onda i imena datoteka po abecednom redu.
Sintaksa;
dir [/o[[:]sortorder]]
Redosljed sortiranja može poprimiti sljedeće vrijednosti;
n - sortiraj po imenima, abecedni poredak
e - sortiraj po nastavku (tipu)
g - sortiraj direktorije na početku (prve)
s - sortiraj po veličini (najmanja prva)
d - sortiraj po datumu (najstarija prva)
- (znak minus) - daje suprotno značenje (npr. -n sortiraj u obrnutom abecednom redu)
Primjeri:
a) izlistaj prvo najnovije datoteke i izlistaj samo imena datoteka i direktorija
dir /b /o:-d
objašnjenje;
/b - izlistava samo imena datoteka i direktorija, bez drugih informacija
/o:-d - sortira po datumu, ali najnovija prva
b) izlistaj sve datoteke od tekućeg pa po svim njegovim poddirektorijima, sortiraj po veličini, ali da veća bude prva i prekini izlistavanje kada se ekran napuni informacijama
dir /a /s /p /o:-s
objašnjenje;
/a - izlistava sve datoteke, uključujući skrivene i sistemske
/s - izlistava direktorij i poddirektorije
/p - izlistava sadržaj ekran po ekran
/o:-s - sortira po veličini, ali veća je prva
Command Prompt (5)

Primjer sintakse u "Command Promptu";
type [drive:][path]filname
odnosno,
type C:cmd_vjezbaispis.txt
Drugi primjer sintakse sa objašnjenjem;
dir [drive:][path][filname][/p][/w][/s][/a[[:attributes]]
naredba;
dir - naredba se uvijek piše na početku
Parametri;
[drive:][path] - označava diskovni pogon i stazu (putanju) do direktorija, čiji se sadržaj želi izlistati, ako se ništa ne navede sporazumjeva se trenutno aktivni disk i direktorij
[filename] - označava ime jedne ili više datoteka koje želimo izlistati, ako se ne navede sporazumjevaju se sve datoteke
prekidači (opcije);
/p - izlistava jednu po jednu stranu na zaslonu, za nastavak izlistavanja treba pritisnuti bilo koju tipku
/w - izlistava ispis u širokom formatu s više naziva u jednom redu
/s - izlistava svako pojavljivanje u direktoriju i podređenim poddirektorijima
(Prekidač ima simbol slova kojeg prethodi kosa crta / )
atributi;
[/a[[:attributes]] - izlistava imena samo onih direktorija i datoteka čiji su atributi navedeni, ako se izostavi naredba "dir" izlistava sva imena osim skrivenih i sistemskih datoteka (ne prikazuje ime skrivenog direktorija), a ako se navede samo opcija bez atributa tada naredba "dir" izlistava sve datoteke (prikazuje ime skrivenog direktorija).
/a: - prekidač "/a:" omogućava da zadate vrstu datoteka, određenih atributom, koje će biti izlistane. Dvije točke iza prekidača nisu obavezne.
Atributi mogu poprimiti slijedeće vrijednosti;
d - izlistaj samo direktorije
h - izlistaj samo skrivene datoteke
s - izlistaj samo sistemske datoteke
r - izlistaj samo datoteke koje imaju postavjen atribut "read only"
a - izlistaj datoteke koje dozvoljavaju arhiviranje
- (znak minus) - ako ispred atributa stoji znak minus "-" tada on daje suprotno značenje (npr. -d izlistaj samo datoteke, bez direktorija)
Možete i kombinirati vrijednosti, npr.
/a:dh - izlistaj samo skrivene direktorije
dvije točke iza prekidača "/a" nisu obavezne, pa možete napisati i
/adh
Vrijednosti se prilikom kombiniranja ne smiju razdvajati razmakom

napomena!
- Simboli u uglatim zagradama [] su opcionalni i mogu se izostaviti (uglate zagrade se inače ne navode u samoj sintaksi).
- Između naredbe i parametra, odnosno atributa, mora postojati razmak u veličini jednog znaka (tipka "SpaceBar").
- Ako parametar sadrži razmak, mora se staviti u navodne znakove jer bi se niz znakova tumačio kao novi parametar,
npr;
dir ime datoteke
treba napisati pravilno
dir "ime datoteke"
- Naredbom "help" potražite pomoć u sintaksi pojedine naredbe na sljedeći način;
help naredba
ili
naredba/?
npr:
help dir
ili
dir/?
Riječ, dvije;
atribut (engl.attribute) - osobina, svojstvo. U sustavima zasnovanim na "DOS-u", svaka datoteka ima atribute kojima se označuje neke osobine datoteke (npr."Hidden" - skrivena datoteka)
prekidač (engl. switch) - drugi naziv za opciju. Simbol koji se dodaje naredbi kako bi se prilagodilo ponašanje naredbe.
Command Prompt (4)
Sama struktura organizacije podataka podsjeća na stablo, kojemu je korijen (ROOT) osnovni dio s kojega se dalje granaju mape i podmape. Da bi se lakše orijentirali u takvoj šumi direktorija i poddirektoria, odnosno kroz sistem, upotrijebiti ćemo našu sljedeću naredbu, tree (stablo).
NAREDBA;
tree

Naredba tree prikazuje grafičku strukturu direktorija počevši od zadanog direktorija, odnosno diska.
napomena!
Najvjerovatnije će doći do pogreške ako probate izvršiti naredbu "tree" u "Command Promptu" kojeg ste podigli iz Windowsa XP, a koji nisu instalirani na particiji "C".
Uz naredbu "tree" mogu se zadati i prekidači (opcije),
/f - (engl. file = datoteka), prikazuje i nazive datoteka u svakom direktoriju
/a - prikazuje strukturu direktorija koristeći tekst znakove umjesto grafičkih
a u suradnji s naredbom "more" može se ispis direktorija prikazivati dio po dio.
Primjer naredbe "tree" sa prekidačem (opcijom) "f".
C:>tree /f

napomena!
Više o sintakasi pisanja naredbi, odnosno parametrima i prekidačima u sljedećem postu.
NAREDBA;
dir
Naredba dir prikazuje listu datoteka i poddirektorija koji se nalaze na zadanom disku ili direktoriju.

Kao što se na slici vidi, naredbom "dir" prikazuju se i sljedeće informacije;
- datum i vrijeme kreiranja direktorija i njegovo ime
- datum i vrijeme kreiranja datoteka
- veličina, ime i tip datoteka
- broj datoteka i direktorija u zadanom direktoriju
- veličina slobodnog prostora
(više o naredbi dir u sljedećem postu)
Command Prompt (3)
$p - trenutni disk i put (path)
$n - disk
$g - znak >
$l - znak <
$q - znak =
$a - znak &
$$ - znak $
$s - space
$c - lijeva zagrada
$f - desna zagrada
$t - trenutno vrijeme
$d - trenutni datum
$v - verzija Windows XP
NAREDBA;
exit
Za izlazak iz "Command Prompta" koristi se naredba exit.
NAREDBA;
cd
Za promjenu direktorija, odnosno za prikaz imena trenutnog direktorija, koristi se naredba cd (engl. Change Directory - promjeni direktorij)
napomena!
Iako smo to već naglasili, nije na odmet ponoviti!
U starijim okvirima za dijalog, riječ direktorij odnosi se na ono što danas, pod Windowsima, nazivamo mapom.
Primjeri korištenja naredbe "cd";
cd = vraća u korijenski direktorij (root)
npr.
C:Program FilesMoja mapa>cd
C:>
cd.. = vraća iz poddirektorija u direktorij za jedni "stepenicu" bliže korijenskom direktoriju
npr.
C:Program FilesMoja mapa>cd..
C:Program Files>
cd = odlazak u točno određeni direktorij
npr.
C:>cd Program Files
C:Program Files>
Ako vam se ne da tipkati staza do određenog direktorija (mape) upotrijebite sljedeći trik, koji na zanimljivi način nudi promijenu direktorija unutar prozora "Command Prompta" (trik je smislio Kaleb Axon).

a) Otvorite "Command Prompt", upišite naredbu cd i pritisnite tipku "SpaceBar" (napravite razmak).
b) Povucite i ispustite vašu izabranu mapu u "Command Prompt" prozor i pritisnite tipku "Enter".
ponovimo!
-Nakon svakog unosa naredbe - pritisnuti tipku "ENTER", da bi se unesena naredba izvršila!
-"DOS", odnosno Command Prompt, ne prepoznaje velika i mala slova, možete pisat CD ili cd.
-Direktorij i poddirektorij se međusobno odvajaju kosom crtom " " (back slash).
Command Prompt (2)

Upoznajmo našu prvu naredbu,
start
a) pokrenite "Command Prompt" (Wintipka+R, upišite cmd, klik na dugme "Ok")
b) iza odzivnog znaka upišite naredbu start i pritisnite tipku "Enter".

Pomoću same naredbe "start" otvaramo novi "Command Prompt" prozor (više o naredbi "start" i njezinim parametrima u sljedećim postovima).
Druga naredba,
title
upišite naredbu title, napravite jedan razmak (jedan pritisak na tipku "SpaceBar"), upišite, npr. myxp blog.hr i pritisnite tipku "Enter".

Pogledajte naslovnu traku vašeg "Command Prompta". Pomoću naredbe "title" mijenjamo/zadajemo ime prozora, odnosno naslovne trake.
Upišimo sada te dvije naredbe zajedno na sljedeći način,
start title myxp.blog.hr
i pritisnimo tipku "Enter".

Treća naredba,
prompt
upišite naredbu prompt, napravite razmak, upišite kod $t i pritisnite tipku "Enter".

Naredbom "prompt", odnosno naredba "prompt" + "kod", definiramo sam izgled odzivnog znaka (prompta), tj. odzivni znak možemo prikazivati kao informacije sistema ili nekog teksta.

(više o dodatnim kodovima i njihovo objašnjenje u sljedećem postu)
Command Prompt (1)

Iako "DOS" (Disk Operating System) više službeno ne postoji, program "Command Prompt", odnosno "Windows Command Processor", u "Windows XP" zadržao je, ako ne i unaprijedio, neke osobine "DOS-a".
napomena!
Zapravo, program koji mi pokrećemo, a u kojemu se prikazuje odzivni znak (command prompt), izvršavaju i obrađuju naredbe, zove se "command processor".
"Command Prompt" možemo pokrenuti na dva sljedeća načina;
a) izaberite "Start" > "Run" (WinTipka+R), upišite cmd i klik na dugme "Open"
b) izaberite "Start" > "Programs" > "Accessories" i klik na "Command Prompt"
Da bi si, barem malo, olakšali rad u "Command Promptu", pritisnite kombinaciju tipki "Alt"+"SpaceBar",odnosno kliknite desnom tipkom miša na naslovnu traku "Command Prompta" i iz padajućeg izbornika izaberite opciju "Properties".

U novootvorenom prozoru "Properties", pod "Options", odnosno "Edit Options", označite "QuickEdit mode" (mogućnost korištenja međuspremnika). Inače u tabu "Options" moguće je postaviti i dodatne postavke;
- veličinu kursora (Cursor Size)
- način prikaza "Command Prompta" (Window ili FullScreen - "Alt+Enter")
- povijest naredbi (Command History), ova mogućnost pamti prethodne korištene naredbe, a poziva se tipkom "F7", odnosno briše sa "Alt"+"F7"

Dalje, pod tabom "Layout", odnosno "Screen Buffer Size", postavite "Height", npr. na 1000 i kliknite na dugme "Ok", pa još jednom klik na "Ok".
Riječ, dvije;
command processor - komandni procesor je dio operativnog sistema koji na zaslonu prikazuje odzivni znak, interpretira, izvršava i obrađuje sve naredbe i datoteke koje mu korisnik zada i prikazuje poruke o greškama kada do njih dođe.
command prompt - odzivni znak, odnosno grupa znakova na zaslonu, kojima vam operativni sistem daje do znanja da je spreman da primi naredbu.
command line - komandna linija, odnosno redak za naredbe. Redak na zaslonu u kojem se očekuje upis naredbi pomoću tipkovnice.
C++ (7)
komentar (comment) - objašnjenje koje programer ubacuje u program i u kome se opisuje što program radi, kako radi, tko ga je napisao, zašto je promijenjen, itd. Komentari ne utječu na tok izvršavanja programa, niti na veličinu izvršne verzije programa.
Komentare u programskom jeziku C++ možemo pisati na dva načina;
a) kao "C++ komentare" koji se navode iza znakova // (dvije kose crte), koji prevoditelja obavještavaju da ignorira sve što se nalazi iza njih u tekućem redu. C++ komentari se mogu pisati u jednom ili više redova.
// ovo je naš supertajni program
// unosom dva cjelobrojna broja
// daje rezultat kao cjelobrojni broj
// autori još uvijek nepoznati
#include <iostream>
using namespace std;
int main() {
int a, b, c; // tajne varijable
cout << "hm:";
cin >> a; // očekuje upis prvog broja
// nastavak slijedi...
// izabrao i pripremio Đ.H.
b) kao "C komentare" koji se navode unutar para znakova /* */ , koji prevoditelja obavještavaju da ignorira sve što se nalazi unutar njih. "C komentari" pružaju mogućnost komentiranja u više redova bez potrebe da se ponavlja znak za komentiranje. C++ programeri ponekad koriste "C komentare" za privremeno isključivanje dijelova izvornog koda.
#include <iostream>
using namespace std;
/* ovdje počinje način komentara
preuzet iz programskog
jezika C i koji se nastavlja.......
...................................
...................................
do znaka kojim se završava komentar */
Kao što je dobro komentirani program mnogo pregledniji, tako se i pretjerano komentirani program može učiniti nepreglednim. Vremenom ćete naći zlatnu sredinu, jer se i komentiranje uči, vjerovali ili ne.
Par savjeta za gdje i što komentirati (preuzeto iz knjige "Demistificirani C++, odnosno "Strustrup91");
- na početku datoteke izvornog koda opisati sadržaj datoteke
- kod deklaracije varijabli, razreda i objekta obrazložiti njihovo značenje i primjenu
- ispred funkcije dati opis što radi, što su joj argumenti i što vraća kao rezultat (eventualno dati opis algoritma koji se primjenjuje)
- dati sažeti opis na mjestima u programu gdje nije potpuno očito što kod radi
C++ (6)

Za pravilan ispis hrvatskih znakova "ć,č,đ,š,ž" u komandnom prozoru (Command Promptu) upotrijebiti ćemo razred "domaciNiz", koji je preuzet iz knjige "Demistificirani C++". (Najbolja knjiga za programski jezik C++ ikada objavljena na hrvatskom jeziku, ako ne i šire. Knjigu su napisali domaći autori Julijan Šribar i Boris Motik)
kod razreda "domaciNiz"
// ovdje je početak razreda domaciNiz
class domaciNiz : public string {
public:
domaciNiz(char *znNiz) : string(znNiz) {;}
domaciNiz() : string() {;}
domaciNiz(string str) : string(str) {;}
string PisiPoVuku() const;
void CitajPoVuku(string str);
};
string domaciNiz::PisiPoVuku() const {
char *szDOStext = new char[length() + 1];
CharToOem(c_str(), szDOStext);
const string strDOStext(szDOStext);
delete [] szDOStext;
return strDOStext;
}
void domaciNiz::CitajPoVuku(string str) {
char *szWinText = new char[str.length()+1];
OemToChar(str.c_str(), szWinText);
assign(szWinText);
delete [] szWinText;
return;
}
ostream& operator<<(ostream &os, const domaciNiz &nN) {
return os << nN.PisiPoVuku();
}
istream& operator>>(istream &is, domaciNiz &nN) {
if (!is)
return is;
string str;
is >> str;
nN.CitajPoVuku(str);
return is;
}
// ovdje završava razred domaciNiz
// dolje pišete svoj programski kod
Da ne bi svaki put upisivali/kopirali dotični kod u svoje programe, mi ćemo kod razreda "domaciNiz" spremiti kao "predložak koda" na sljedeći način;
a) Pokrenite "ConText editor" i kreirajte novu datoteku (Ctrl+N) sa "osvjetljivačem" C/C++ ( ako želite da vam se nova datoteka automatski kreira prilikom pokretanja "ConText editora", tada izaberite, u "Postavkama radne okoline" pod "Općenito" u opciji "Pri pokretanju", mogućnost "Kreiraj novu datoteku").
b) Izaberite redom "Postavke" > "Predlošci koda...", pa u novootvorenom prozoru "Predlošci koda" upišite kod "domaciNiz" ili jednostavnije, skinite već pripremljenu datoteku "C_C++.ctpl" u kojoj se nalazi "predložak koda - domaciNiz" sa doljnjeg linka, raspakirajte ga i spremite u mapu "Template", odnosno X:Program FilesConTEXTTemplate (gdje je "X" oznaka vašeg diska).
skini predložak
Nakon što ste skinuli datoteku "C_C++.ctpl" i spremili je u mapu "Template" pokrenite "ConText editor" i pritisnite kombinaciju tipki "Ctrl+J", odnosno "Ubaci kod iz predloška". Otvorit će se dodatni prozor u kojemu se nalaze sljedeći predlošci;
- domaćiNiz_1 (PišiPoNaši); u ovom predlošku se nalazi samo kod razreda "domaciNiz".
- domaciNiz_2 (PišiPoNaši plus
- domaćiNiz_3 (PišiPoNaši sva zaglavlja); kod razreda "domaciNiz" sa svim potrebnim zaglavljima ("iostream", "conio.h, "windows.h") koji su potrebni, za sada, u našim vježbama.
napomena!
Kako budemo napredovali u učenju programskog jezika C++, tako ćemo mijenjati, odnosno dodavati nove predloške koda.
Da li radi!?!
a) Pokrenite "ConText editor", kreirajte novu datoteku (C/C++).
b) Ubacite predložak koda (Ctrl+J) "domaciNiz_3".
c) upišite/kopirajte sljedeći doljnji kod.
int main() {
int a, b, c;
cout << domaciNiz("Upišite prvi cjelobrojni broj:");
cin >> a;
cout << domaciNiz("Upišite drugi cjelobrojni broj:");
cin >> b;
c = a + b;
cout << "Njihov zbroj je: " << c << endl;
getch();
return 0;
}
d) Spremite ("Snimi kao...") programski kod u vašu mapu pod imenom, npr. "domaciNiz_proba.cpp" (bez navodnika).
e) Pokrenite prevoditelj sa izvršnom tipkom "F9" te nakon uspješnog prevođenja pokrenite program sa izvršnom tipkom "F10".

Ovaj put imamo "š"!
C++ (5)
problem 2.
Napišite program koji zbraja dva cjelobrojna broja.
a) Napravite mapu u koju ćete staviti vaš drugi C++ program.
b) Pokrenite "ConText editor" i napišite doljnji programski kod.
// problem 2
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
int a, b, c;
cout << "Upisite prvi cjelobrojni broj:";
cin >> a;
cout << "Upisite drugi cjelobrojni broj:";
cin >> b;
c = a + b;
cout << "Njihov zbroj je: " << c << endl;
getch();
return 0;
}
napomena!
Zbog nedostatka prostora neki komentari u programskom kodu se neće prikazivati. Kako bi to trebalo izgledati vidi se na doljnjoj slici. Komentare ćemo dodatno obraditi u narednim postovima. Primjećujete da sam "Upisite" napisao sa "s", a ne sa "š". To je zato jer za ispis u konzoli Windowsi koriste drugo pismo, a kako to ispraviti, objasniti ću drugom prilikom.

c) Spremite ("Snimi kao...") programski kod u vašu mapu pod imenom npr
"problem_02.cpp" (bez navodnika).
d) Pokrenite prevoditelj sa izvršnom tipkom "F9" te nakon uspješnog prevođenja pokrenite program sa izvršnom tipkom "F10".

U našem drugom programu primjećujemo neke novine.
sedmi red
int a, b, c;
Da bismo učitali ulazne podatke, moramo ih negdje smjestiti, a to mjesto zovemo varijabla (više o varijablama pisati ćemo u narednim postovima) Ovdje smo definirali tri varijable imenima "a", "b" i "c", koje smo ključnom riječi "int" definirali kao cjelobrojne.
Sljedeća novina je ulazni tok (engl. input stream) "cin";
deseti i trinaesti red
cin >>
"Ulazni tok" služi za učitavanje podataka sa tipkovnice.
petnaesti red
c = a + b;
ova naredba zbraja vrijednosti varijabli "a" i "b" i njihov zbroj pohranjuje u varijablu "c".
Sažetak
Da bi naši programi mogli ispisivati podatke na zaslon, odnosno unositi podatke preko tipkovnice moramo u njih pomoću pretprocesorske naredbe "#include" uključiti biblioteku "iostream" u kojoj ce nalaze ulazno-izlazni tokovi "cin" i "cout".
Riječ, dvije;
varijabla (lat. variabilis - promjenljiv) - u programiranju, imenovano mjesto pohrane sposobno da sadrži određeni tip podataka koji se tijekom izvođenja programa mogu mijenjati. (npr. varijabla s imenom "broj" može sadržavati broj 12, ali program tu vrijednost može bilo kada promijeniti)
podatak - jedinica informacije
podaci - znakovi, zapisi ili skupovi značenja kojima računalo rukuje. Predstavljanje činjenica, pojmova ili instrukcija u takvom obliku da ih računalo može prenositi, tumačiti i obrađivati.
cijeli broj - broj bez razlomačkog dijela, npr. 1, 4, -149 i 9875. U C/C++, npr. "int" (integer - cijeli broj) ispred imena varijable, na primjer "broj" određuje varijablu kao cjelobrojnu. Cijeli brojevi mogu biti pozitivni i negativni.
C++ (4)
problem 1.
Napišite program koji ispisuje na zaslon računala, ili na štampaću "Ja sam mali problem!".
Da bi riješili naš prvi mali i jednostavni problem potrebno je riješiti problem prikaza, odnosno ispisa niza znakova. Pošto je ovo mali problem i budući da funkcija za ispis postoji, možemo napisati rješenje odnosno naš prvi program u C++.
a) Napravite mapu u koju ćete staviti vaš prvi C++ program.
b) Pokrenite "ConText editor" i napišite doljnji programski kod.
// problem 1
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
cout << "Ja sam mali problem!" << endl;
getch();
return 0;
}
c) Spremite (Snimi kao...) programski kod u vašu mapu pod imenom npr "problem_01.cpp" (bez navodnika).
d) Pokrenite prevoditelj sa izvršnom tipkom "F9" (ako ste točno prepisali programski kod, prevoditelj vam ne bi trebao ispisati niti jednu grešku).
e) Pokrenite vaš program "problem_1.exe" sa izvršnom tipkom "F10".

Iako je ovo mali program i ne čini ništa posebno, mi ćemo iz njega naučiti osnove jezika C++.
Krenimo red po red;
prvi red
// problem 1
Dvostruka kosa crta je oznaka za početak komentara koji se završava do kraja tekućeg reda, a može se protezati i kroz više redova. Komentari služe programerima za opis naredbi ili dijelova koda. Prevoditelj ignorira sve komentare tako da oni nemaju nikakvog utjecaja na rad programa.
drugi red
#include <iostream>
Pomoću naredbe, odnosno pretprocesorske naredbe "#include" zahtjevamo od prevoditelja da u naš program uključi biblioteku "iostream". U biblioteci "iostream" nalazi se izlazni tok, odnosno funkcije koje omogućavaju ispis podataka na zaslon. Sam naziv "iostream" u okviru naredbe "#include" nalazi se između znakova "<" i ">" šta znači da se radi o elementu C++ biblioteke koja se zove standardno zaglavlje (engl. standard header).
treći red
#include <conio.h>
Da bi mogli rabiti funkciju "getch()" (biti će kasnije opisana) moramo u program uključiti zaglavnu datoteku "conio.h".
četvrti red
using namespace std;
Pošto mi koristimo nove standardne biblioteke (#include <iostream>), a ne starije oblike datoteka zaglavlja (#include <iostream.h>), morali smo dodati ključne riječi jezika C++ "using" i "namespace". Za "std" recimo da je naziv imenika u kojem su obuhvaćene sve standardne funkcije.
šesti red
int main() {
U svakom programu napisanom u C++ jeziku obavezna je jedna i samo jedna funkcija "main()". Kada u C++-u pokrećemo program, mi u stvari pozivamo ovu funkciju. Funkcije "main()" mora najaviti kakvu vrstu vrijednosti vraća kao rezultat. U našem programu funkcija "main()" vraća vrijednost "int" (int=integers, cijeli broj), odnosno kada funkcija "main()" završi rad ona će operacijskom sustavu vratiti kao rezultat cijeli broj. Iza riječi "main" slijede zagrade u koje se upisuju parametri koji se pridružuju funkciji. U našem primjeru nema parametra, zato su zagrade prazne.
Iza fukcije "main()" slijedi otvorena vitičasta zagrada "{" koja označava početek "bloka naredbi". Vitičaste zagrade ukazuju prevoditelju da sve što se nalazi unutar njih promatra kao cjelinu.
sedmi red
cout << "Ja sam mali problem!" << endl;
"Cout" je ime standardnog izlaznok toka definiranig u biblioteci "iostream". Izlazni operator "<<" upućuje podatak koji slijedi na izlazni tok, odnosno na zaslon. Podatak u našem programu "Ja sam mali problem!" napisan je unutar znakova navodnika, koji ukazuju da se radi o tekstu koji treba ispisati. Konstanta "endl" služi za prelazak u novi red.
osmi red
getch();
Sa Borlandovim prevoditeljima dolazi nestandardna funkcija "getch()" koju mi koristimo da bi uvjetno zaustavili program prije samog kraja. Da nismo dodali ovu funkciju, naš bi se program nakon izvršenja zatvorio i mi ne bi stigli vidjeti ispis. Za izlaz iz programa stisnite bilo koju tipku.
Mogućnost "system ("pause")" nisam koristio radi preglednosti.
deveti red
return 0;
Naredba "return" završava funkciju kojoj pripada i vraća vrijednost (u ovom slučaju) "0" funkciji koja je pozvala datu funkciju, a to je poruka operacijskom sustavu da je program uspješno završen.
deseti red
}
Funkcija "main()", odnosno "blok naredbi" završava se zatvorenom vitičastom zagradom.
napomena!
Svaka naredba u jeziku C++ mora se završiti znakom točka-zarez ";".
Riječ, dvije;
funkcija (engl. function) - je imenovani dio programa koji ostali dijelovi programa mogu pozivati ili pokretati.
C++ (3)
Kako namjestiti postavke u "ConText editoru" za rad sa Borland "C++ Compiler" i "Turbo Debugger"?

a) Instalirajte "ConText editor" (po mogućnosti na isti disk, odnosno particiju gdje ste instalirali Borland "C++ Compiler 5.5" i "Turbo Debugger 5.5").
b) Promjenite prikaz jezika korisničkog sučelja u hrvatski tako da izaberete meni "Options" > "Environment Options...", pa u novootvorenom prozoru "Environment Options" pod "General" i pod postavkom "Language" izaberite "Hrvatski".
c) Za ugodnije i preglednije pisanje izvornog koda, u meniju "Postavke" > "Postavke radne okoline..." > "Editor", označite "Brojevi linija" pa u postavci "Postavke za novi dokument" za "Osjetljivač" izaberite "C/C++" i kliknite za kraj dugme "Prihvati".
d) Sada dolaze najbitnije postavke, postavke za "Izvršne tipke"!
Izaberite meni "Postavke" > "Postavke radne okoline..." > "Izvršne tipke" i kliknite na dugme "Dodaj".
Sada u novootvorenom prozoru "Izmjena ekstenzije" upišite (obavezno sa zarezom);
,cpp

Za izvršne tipke upisujemo sljedeće postavke;
Za F9
kliknite mišem (označite) "F9" i u postavkama (desno) unesite sljedeće postavke, odnosno parametre...
Pokreni:
X:BorlandBCC55Binbcc32.exe
Pokreni u:
X:BorlandBCC55Bin
Parametri:
-n%p -a -v %n
Prozor:
Normal
Pomoć: (upišite npr.)
Borland 5.5 Compiler
Snimi:
Editirajući datoteku prije izvršavanja
(označite)
Koristi krataka DOS imena
Prihvati izlaz konzole
Pravilo parsiranja izlaza kompilatora:
Error %n %l:
napomana!
"X" zamijenite sa oznakom vašeg diska ili particije gdje ste instalirali Borland "C++ Compiler 5.5" i "Turbo Debugger 5.5".

Klik na dugme "Aktiviraj"!
Za F10
kliknite mišem (označite) "F10" i u postavkama (desno) unesite sljedeće postavke, odnosno parametre...
Pokreni:
X:WINDOWSsystem32cmd.exe
Parametri:
/c %p%F.exe
Prozor:
Normal
Snimi:
Editirajući datoteku prije izvršavanja
(označite)
Koristi krataka DOS imena

Klik na dugme "Aktiviraj"!
Za F11
kliknite mišem (označite) "F11" i u postavkama (desno) unesite sljedeće postavke, odnosno parametre...
Pokreni:
X:BorlandBCC55BinTD32.exe
Parametri:
%F.exe
Prozor:
Normal
Snimi:
Editirajući datoteku prije izvršavanja
(označite)
Koristi krataka DOS imena
Prihvati izlaz konzole

Klik na dugme "Aktiviraj"!
Da li radi!?!
Upišite u "ConText editor" sljedeći program;
#include <iostream>
using namespace std;
int main() {
cout << "Hello, World!" << endl;
system ("pause");
return 0;
}
- snimite kao "proba.cpp"
- pokrenite prevoditelj (slika1)

- te nakon uspješnog prevođenja pokrenite program (slika2)


C++ (2)
Kako instalirati Borland "C++ Compiler 5.5" i "Turbo Debugger 5.5"?

a) Prvo instalirajte Borland "C++ Compiler 5.5" (ako imate više diskova, odnosno particija, pripazite na koji disk ili particiju instalirate).

b) Zatim na isti način instalirajte Borland "Turbo Debugger 5.5".
C) Nakon uspješne instalacije potrebno je kreirati dvije datoteke (bcc32.cfg i ilink32.cfg).
1) bcc32.cfg
Pokrenite "Notepad" i upišite sljedeće postavke (sa navodnicima);
-I"X:BorlandBcc55include"
-L"X:BorlandBcc55lib;X:BorlandBcc55libpsdk"
gdje je "X" oznaka vašeg diska ili particije gdje ste instalirali Borland "C++ Compiler 5.5" i "Turbo Debugger 5.5".
Npr.
ako ste instalaciju izvršili na disku "C", tada treba upisati;
-I"C:BorlandBcc55include"
-L"C:BorlandBcc55lib;C:BorlandBcc55libpsdk"
Snimite datoteku kao "bcc32.cfg" u mapu X:BorlandBCC55Bin
(izaberite meni "File" > "Save As...", pa u novootvorenom prozoru "Save As" u "File name" upišite "bcc32.cfg", bez navodnika i kliknite na dugme "Save")

2) ilink32.cfg
Ponovo pokrenite "Notepad" i upišite sljedeće postavke (sa navodnicima);
-L"X:BorlandBcc55lib;X:BorlandBcc55libpsdk"
(ne zaboravite "X" zamijeniti sa oznakom vašeg diska)
Snimite datoteku kao "ilink32.cfg" u mapu X:BorlandBCC55Bin
Već pripremljene datoteke (bcc32.cfg i ilink32.cfg) možete skinuti sa ovog linka 2xCFG
d) Na kraju treba još upisati "path", odnosno putanju, na sljedeći način;
- kliknite desnom tipkom miša na "My Computor" i iz padajućeg menija izaberite "Properties"
- u novootvorenom prozoru "System Properties" izaberite jezičak "Advanced" i kliknite na dugme "Environment Variables"
- sada u "System variables" izaberite Variable "Path" i kliknite na dugme "Edit"
- u "variable value" upišite "X:BorlandBCC55Bin" (bez navodnika i ne zaboravite umjesto oznake "X" upisati oznaku vašeg diska na koji ste instalirali Borland "C++ Compiler 5.5" i "Turbo Debugger 5.5")

- potvrdite sve klikom na dugme "Ok", pa još jednom klik na "Ok" i za kraj još jednom klik na dugme "Ok"
Sada su napokon Borland kompilator i debugger spremni za rad!
C++ (1)
Najbolji, a možda i jedini način da bismo naučili programski jezik C++ jest da počnemo u njemu programirati, a da bismo uopće počeli programirati potreban nam je alat, odnosno program(i) za programiranje u C++.
Prvi i osnovni alat koji nam je potreban je C++ prevoditelj (kompilator). Postoje razna komercijalna i skupa razvojna okruženja (Microsoft Visual C++, Borland C++ Builder), ali postoje i besplatni prevoditelji poput "Dev C++" i Borland "C++ Compilera 5.5" koji će se inače i koristiti u daljnjem radu.
Drugi alat koji će nam trebati je Borlandov "Turbo Debugger" koji je također besplatan, a treći alat u koji ćemo pisati izvorni kod, biti će program domaćeg autora, "ConText editor".
Borland "C++ Compiler Version 5.5" i "Turbo Debugger Version 5.5" skinite sa ovog linka >> Borland <<
"ConText editor" skinite na ovom linku >> ConText editor <<

Kako sam autor (Eden Kirin) kaže;
"ConText je mal, brz, moćan i jednostavan tekst editor!"
Uz program se isporučuju definicije za C/C++, Delphi/Pascal, PHP, Perl, Javu, Java Script, HTML, assembler 80x86, itd., a moguće je definirati i vlastite definicije za proizvoljan programski jezik. Povezivanje s ekstremnim aplikacijama (npr. besplatnim kompilatorima) riješen je na jednostavan i prikladan način. Može otvoriti neograničeni broj datoteka, a pretraživanje i zamjena teksta može se obaviti u pojedinoj datoteci ili u svim otvorenim datotekama.
Riječ, dvije;
compiler - kompilator, program koji prevodi izvorni kod u objektivni. Programi prevedeni pomoću kompilatora puno se brže izvode od programa prevedenih interpreterom.
debugger - program koji pronalazi greške u drugim programima.
Pošto je i sam autor ovog bloga početnik u programiranju, bila kakva sugestija ili pomoć iskusnih programera dobro je došla!
Resource Hacker (6)
Promjena izgleda "Log-on" screena (3)
e) Promjena rezolucije ("glavne") bitmape ("100")
Upišite "100" (bez navodnika) u polje "Find what", kliknite na dugme "Find Next" i doći ćete do sljedeće postavke;
![]()
Ovdje mijenjamo - zadajemo rezoluciju bitmape "100"
Ovdje mijenjam;
content=rcbmp (100,0,0,219rp,207rp,1,0)>
u
content=rcbmp (100,0,0,450rp,530rp,1,0)>
Klik na "Compile Script"
(Promjenio sam rezoluciju u "450rp, 530rp" jer je moja bitmapa "100" veličine - rezolucije 450x530 px. Da sam ostavio staru vrijednost, bitmapa "100" - "ruža" bila bi dosta smanjena, odnosno bitmapa "ruža" bi se jedva vidjela.)
f) Promjena boje pozadine "Windows XP" loga
(koji se prikazuje nakon restartanja, odnosno gašenja računala)
Označite doljnji tekst mišom, kopirajte ga, zalijepite u polje "Find what" i kliknite na dugme "Find Next"!
to >> background=rgb (90,126,220) /> << to
Doći ćete do sljedeće postavke (hm!);
![]()
Tu mijenjamo - zadajemo boju pozadine "Windows XP" loga koji se prikazuje nakon restartanja, odnosno gašenja računala
Mijenjam;
background=rgb (90,126,220)/>
u
background=rgb (0,0,0)/>
Klik na "Compile Script"
g) Promjena rezolucije bitmape ("123")
Upišite "123" (bez navodnika) u polje "Find what", kliknite na dugme "Find Next" i doći ćete do sljedeće postavke;
![]()
Ovdje mijenjamo - zadajemo rezoluciju bitmape "123"
Mijenjam;
content=rcbmp (123,3,-1,137,86,0,0)
u
content=rcbmp (123,3,-1,1,1,0,0)
ili
content=rcbmp (123,3,-1,0,0,0,0)
(ne igra nikakvu ulogu)
Klik na "Compile Script"
(Da nisam promijenio rezoluciju - veličinu bitmape "123", moja bitmapa "100" - "ruža" bila bi do pola prekrivena bitmapom "123", što bi se vidjelo prilikom restartanja, odnosno gašenja računala.)
h) Promjena boje sjene natpisu "Welcome" ("Welcomeshadow")
Označite doljni tekst mišom, kopirajte ga i kliknite na dugme "Find Next"!
to >> foreground: rgb (49,81,181) << to
Doći ćete do sljedeće postavke;

Ovdje mijenjamo - zadajemo boju sjene natpisu "Welcome"
(na ovom mjestu možete dodatno izmjeniti i ostale vrijednosti natpisu "Welcome", od font stila do veličine fonta)
Mijenjam;
foreground: rgb (49,81,181);
u
foreground: rgb (134,12,9);
Klik na "Compile Script" i klik na "Save"
napomena!
Da bi promijenili "logonui.exe" datoteku, morate restartati Windowse, pa prilikom novog podizanja (bootanja) Windowsa pritisnuti tipku "F8" i izabrati opciju "Safe Mode"! U "Safe Modu" zamijenite orginalnu datoteku "logonui.exe" sa svojom izmjenjenom datotekom "logonui.exe" i restartajte Windowse.

S promjenom boje sjene natpisa "Welcome" završili bi ovaj primjer. Nadam se da sam uspio "obuhvatiti" osnovne promjene "Log - on" screena.
Dodatak
Otvorite (kliknite) resurs "String Table" pa "mapu1" i klik na "1033". U ovom dijelu možete promijeniti natpise, npr;
"Type your password" u "Upiši svoju lozinku"
ili
"welcome" u "dobro došli"
U "mapi2" također možete promijeniti natpise, npr;
"To begin, click your user name"
u
"Za nastavak, klikni na svoje korisničko ime"
ili
"please wait..."
u
"molim sačekajte..."
U "mapi3" možete, npr. - promijeniti veličinu fonta natpisu "Welcome";
"36"
u
"24"

Igrajte se, mogućnosti ima puno!
Resource Hacker (5)
Promjena izgleda "Log-on" screena (2)
Da bi prilagodio promjenjene bitmape, a i ostale elemente korisničkog sučelja prema svojim željama, moram izmjeniti (zadati nove) vrijednosti tim elementima u mapi "UIFILE""UIFILE" (User Interface File) - datoteka korisničkog sučelja u kojoj se "nalaze" sve postavke elemenata "Log - on" screena. Tu se mijenjaju - zadaju boje pozadine, stil i boja fonta, pozicija teksta itd.
a) Promjena boja pozadine (background) glavnog (srednjeg) panela i prijavnog - korisničkog "okvira" (logonaccount)
Da bi ste lakše pratili tutorial, označite doljnji tekst mišom i kopirajte ga (Copy);
to >> background: rgb (90,126,220) << to
Zatim u "Resource Hackeru" izaberite meni "View" pa "Find Text..." ili još bolje, pritisnite tipke "Ctrl" + "F" , zalijepite (Paste) kopirani tekst u polje "Find what" pa kliknite na dugme "Find Next" i doći ćete do sljedećeg teksta - postavke;

U ovome dijelu mijenjamo - zadajemo boju pozadine glavnog (srednjeg) panela
ovdje mijenjam vrijednosti boje;
rgb (90,126,220)
u
rgb (0,0,0)
odnosno u crnu boju

Nakon promjene boje pozadine, sa tipku "F3", odnosno "View" >> "Find Next" tražimo sljedeći tekst "background: rgb (90,126,220)" i dolazimo do sljedeće postavke;

U ovom dijelu mijenjamo - zadajemo boju prijavnom - korisničkom "okviru"
![]()
Tu se određuju dva stanja prikaza;
1) alpha (prozirnost) prikaz koji se "prikazuje" samo kad je "značka" miša unutar desnog (aktivnog) dijela glavnog panela (također možemo promijeniti prikaz animacije, odnosno prozirnost prikaza - alpha)
2) prikaz određene boje kada "značkom" miša prijeđemo preko prijavnog - korisničkog "okvira"
U ovom dijelu, također, mijenjam;
background: rgb (90,126,220)
u
background: rgb (0,0,0)
Opet sa tipkom "F3" (Find Next) dolazimo do sljedeće (treće) postavke;

Ovdje, također, mijenjamo - zadajemo boju prijavnom - korisničkom "okviru", ali dotična boja se "vidi" samo kada je "značka" miša van glavnog (desnog - aktivnog) panela
Opet mijenjam;
background: rgb (90,126,220)
u
background: rgb (0,0,0)
Prije nego prijeđemo na drugu promjenu moramo kliknuti na dugme "Compile Script"!
b) Promjena boje gornjem (top) panelu
Označite doljni tekst mišom i kopirajte ga (Copy);
to >> background: rgb (0,48,156) << to
pa kopirani tekst zalijepite u polje "Find what", kliknite na dugme "Find Next" i doći ćete do sljedeće postavke;

U ovom dijelu mijenjamo - zadajemo boju gornjem (top) panelu
Ovdje ću promijeniti;
background: rgb (0,48,56)
u
background: rgb (0,0,0)
Promjenu moram potvrditi klikom na dugme "Compile Script"!
c) Promjena boje ili gradijenta doljnjem (bottom) panelu
Kopirajte doljni tekst;
to >> background: gradient(argb (0,57,52,173), argb (0,0,48,156), 0) << to
pa kopirani tekst zalijepite u polje "Find what", kliknite na dugme "Find Next" i doći ćete do sljedeće postavke;

Ovdje mijenjamo - zadajemo boju, odnosno gradijent doljnem (buttom) panelu
Mijenjam;
background: gradient argb (0,57,52,173), argb (0,0,48,156), 0);
u
background: gradient(argb (0,0,0,0), argb (0,0,0,0), 0);
Klik na "Compile Script"!
Gradijent (gradient) - prijelaz između dvije ili više boja
(Da smo promijenili samo drugu vrijednost "argb (0,0,48,156)" u "argb (0,0,0,0), dobili bi lagani prijelaz iz plave u crnu boju - vidi sliku)

d) Promjena boje ruba (border) prijavnog - korisničkog okvira
Kopirajte doljni tekst, zalijepite u polje "Find what", kliknite na dugme "Find Next",
to >> bordercolor: rgb (90,126,220) << to
i doći ćete do sljedeće postavke;

Tu mijenjamo - zadajemo boju ruba (border) prijavnog - korisničkog "okvira", ali dotični okvir - boja se "vidi" samo kada je "značka" miša unutar glavnog (desnog) panela

Mijenjam;
background: rgb (90,126,220)
u
background: rgb (0,0,0)
Pritisnimo tipku "F3" i dolazimo do sljedeće (druge) postavke;

Ovdje, također, mijenjamo - zadajemo boju ruba prijavnog - korisničkog "okvira", ali dotični okvir - boja se "vidi" samo kada je "značka" miša van glavnog (desnog) panela
Mijenjam;
background: rgb (90,126,220)
u
background: rgb (0,0,0)
Klik na "Compile Script"!
Kraj drugog dijela!
Resource Hacker (4)
Promjena izgleda "Log-on" screena (1)
Za izgled "Log - on" screena u Windowsima XP zadužena je sistemska datoteka "logonui.exe", koja se nalazi u sistemskoj mapi Windowsa, odnosno u mapi "system32".
napomena!
Na samom početku moram upozoriti da se u sljedećem primjeru izvode izmjene na sistemskoj datoteci i da može doći do neželjenih posljedica. Zato, prije nego bilo što počnete mijenjati, načinite novu točku za povrat sustava (System restore point) na sljedeći način - iz izbornika "Start" odaberete "All Programs" pa "Accessories", zatim "System Tools" i na kraju "Sytem Restore". Odaberite mogućnost "Create Restore Point" pa klik na dugme "Next" i upišite - opišite razlog kreiranja dotične točke za povrat sustava (npr. Izmjena Boot screena). Za kraj klik na "Create" i klik na "Close".
Moj dodatni savjet, napravite sliku (Image) diska, odnosno particije na kojoj se nalaze Windowsi kojima mijenjate sistemske datoteke (image diska - particije možete napraviti sa programom "Norton Ghost" ili "TrueImage").
Autor ovog bloga nije odgovoran za eventualnu štetu nastalu korištenjem ovog tutoriala!
Za sve one koji žele, na jednostavniji način, promijeniti izgled "Loog-on" i "Boot" screena preporučio bi programe namijenjene za te svrhe (Style XP, Boot XP, LogonStudio itd.).
Prije nego počmemo sa primjerom moramo upoznati glavne elemente "Log - on" screena

i "ulogu" bitmapa u "logonui.exe"!

Opisati ću način na koji koristim "Resource Hacker" da bi promijenio i prilagodio "Log-on" screen svojim željama!
Za početek kreiram mapu (npr. "Mojrad-log_on2") i u njoj tri podmape. Jedna za sigurnosnu kopiju "logonui.exe", druga za kopiju "logonui.exe" koju ću izmjeniti i treća za pripremljene bitmape s kojima ću zamijeniti orginalne bitmape u "logonui.exe".
Zatim;
a) sa "Resource Hackerom" otvorim datoteku "logonui.exe", označim bitmapu "100", meni "Action" pa "Replace Bitmap..." i izaberem pripremljenu bitmapu s kojom ću zamijeniti orginalnu bitmapu "100".

b) kliknem na dugme "Replace" i evo nove bitmape!

c) zatim, otvorim bitmapu "112" ("uloga" bitmape "112" - pozadina se "prikazuje" kada izaberete - kliknete na svoje korisničko ime) i zamjenim je sa svojom pripremljenom bitmapom

d) bitmape od "123" do "127" zamijeniti ću svojom bitmapom ("crno.bmp" veličine 1x1 px)

napomena!
dotične bitmape u ovom primjeru promjene "Log - on" screena nisu mi potrebne i zato sam ih zamijenio sa bitmapom crne boje jer će i cijela pozadina ovog "Log - on" screena biti crna!
U slučaju da nisam dotične bitmape zamijenio sa bitmapom "crno", nego ih doslovno obrisao, došlo bi do greške prilikom restartanja, odnosno prilikom bootanja Windowsa!
e) na kraju sve opisane promjene treba usnimiti u datoteku "logonui.exe"
Kraj prvog dijela!
Dodatak
Veličina (rezolucija) bitmape "moja100.bmp" (s njom sam zamijenio orginalnu bitmapu "100" u "logonui.exe) iznosi 450x530 px i pokriva samo lijevi dio pozadine glavnog (srednjeg) panela. Ako želite da neka bitmapa pokriva cijelu pozadinu glavnog panela, morate obratiti pažnju na dvije vrlo bitne stvari;
bitmapa koja pokriva samo lijevi dio pozadine glavnog panela

bitmapa koja pokriva cijelu pozadinu glavnog panela

1.) Rezolucija bitmape mora biti identična screen rezoluciji u kojoj radite. Znači, ako na vašem kompjuteru radite u rezoluciji 1024x768 px, tada i bitmapa mora imati rezoluciju 1024x768 px. Ako ne znate u kojoj screen rezoluciji radite, kliknite desnom tipkom miša na prazni dio desktopa, izaberite "Properties" pa u prozoru "Display Properties" izaberite jezičak "Settings" i pod "Screen resolution" očitajte rezoluciju pod kojom radite.
2.) Nakon što ste promjenili bitmapu ("100"), morate još dodati i njezine nove vrijednosti u mapu "UIFILE", u kojoj se nalaze sve postavke za prikaz (elemenata) korisničkog sučelja "Log - on" screena. Do mjesta gdje ćete upisati vrijednosti vaše nove bitmape najlakše dolazimo da izaberemo meni "View" pa "Find Text..." ili još bolje tipkama "Ctrl" + "F". U prozoru "Find" upišite "100" (bez navodnika) i kliknite na dugme "Find Next" ("100" smo upisali jer smo mijenjali bitmapu "100"). Doći ćete do sljedeće postavke;
...content=rcbmp(100,0,0,219rp,207rp,1,0)>
u koju ćete upisati rezoluciju nove bitmape, odnosno umjesto 219 =1024 i umjesto 207 = 768, na kraju to izgleda ovako,
...content=rcbmp(100,0,0,1024rp,768rp,1,0)>
Zatim kliknite na "Compile Script" i usnimite promjene u "logonui.exe"!
Resource Hacker (3)
Treći primjer - kako dodati novi natpis?
a) Pokrenite "Resource Hacker", izaberite "File" pa "Open..." i otvorite svoju "SFX" arhivu.
b) Otvorite mapu "Dialog", a zatim mapu "STARTDLG" i označite "1049", otvoriti će se prozor "Dialog - STARTDLG".
c) Kliknite desnom tipkom miša na donji dio prozora (lijevo od dugmeta "Install") i izaberite "Insert control" iz padajućeg menija.
d) U novo otvorenom prozoru "Control Editor";
- izaberite dugme "label" (label - natpis, polje za prikazivanje teksta)
- pod "Caption" upišite, npr. "myxp.blog.hr"
- pod "Style", ovdje inače možete dodatno mijenjati izgled "controle", izaberite-označite opciju "SS_CENTER" i "WS_DISABLED".
- kliknite na dugme "Ok"
e) Kliknite na dugme "Compile Script" i u meniju "File" izaberite "Save".

Podignite svoju "SFX" arhivu i pogledajte rezultat!

Četvrti primjer - "vruće tipke"
a) Nakon što otvorite svoju "SFX" arhivu, uđite u prozor "Dialog - STARTDLG".
b) Kliknite desnom tipkom na dugme "Browse..." i u padajućem meniju izaberite "Edit control".
c) U novo otvorenom prozoru "Control Editor", pod "Caption", upišite, npr. "&Pronađi" (bez navodnika) i kliknite na dugme "Ok".
d) Primjenite isti postupak i za ostala dugmad kojima možete promijeniti tekst vrijednosti u, npr.
- "Install" u "I&nstaliraj u"
- "Cancel" u "&Odustani"
e) Kliknite na dugme "Compile Script" i u meniju "File" izaberite "Save".
Dodavanjem znaka "&" (ampersand) uz natpis, odnosno određeno slovo, omogućujemo korištenje tzv. "vrućih tipki".
Npr. natpis "&Pronađi", na dugmetu se pojavljuje s podcrtanim slovom "P" - "Pronađi", pa umjesto da kliknemo mišem možemo upotrijebiti kombinaciju tipki "Alt + P".
(U slučaju da se ne vide podcrtana slova, pritisnite tipku "Alt"!)

Resource Hacker (2)
Drugi primjer - kako ulinkati novi resurs, odnosno novu bitmapu ?
Napravite novu bitmapu veličine "114x23 px" i nazovite je "novabitmapa"!
![]()
a) Pokrenite "Resource Hacker", izaberite "File" pa "Open..." i otvorite svoju "SFX" arhivu (koju ste napravili u prošlom primjeru).
b) Izaberite meni "Action" >> "Add a new resource ...", pa u sljedećem prozoru "Add a New Resource ..." izaberite dugme "open file with new resource...", koji otvara novi prozoru "Open" u kojem nakon odabira bitmape "novabitmapa" kliknete na dugme "Open".

c) Sada u prozoru "Add a New Resource...", ispod "Resource Name:" upišite, npr. "NOVABITMAPA" (naravno bez navodnika).
Inače, svojim resursima možete dati bilo koji logički naziv ili redni broj, npr. prva bitmapa je "101", a novu bi mogla, hm, biti "102".
Ispod "Resource Language:" upišite "0" (nula, bez navodnika) i kliknite na dugme "Add Resource".

Kliknite na mapu "Bitmap" u lijevom prozoru "Resource Hackera" i primjetiti ćete novo stvorenu mapu "NOVABITMAPA".
d) Otvorite mapu "Dialog", a zatim mapu "STARTDLG" i označite "1049", otvoriti će se prozor "Dialog - STARTDLG".
e) Kliknite desnom tipkom miša na donji dio prozora (lijevo od dugmeta "Install") i izaberite "Insert control" iz padajućeg menija.

f) U novo otvorenom prozoru "Control Editor";
- kliknite na sličicu "BITMAP" (treća sličica od lijevo u drugom redu)
- pod "Caption:" upišite "NOVABITMAPA", bez navodnika (ovdje upisujete ime resursa koji ste kreirali prilikom dodavanja novog resursa, pazite na velika slova!)
- kliknite na dugme "Ok"

g) Kliknite na dugme "Compile Script" i u meniju "File" izaberite "Save".
Podignite svoju "SFX" arhivu i pogledajte rezultat!

Resource Hacker (1)
zamjeniti ih novim ili čak "ulinkati" - ubaciti nove

Kada savladate osnove rada sa "Resource Hackerom", možete vašim "SFX" (Self -extracting) arhivima dodati svoji prepoznatljivi "pečat", ulinkati "manifest" u vaše stare programe da bi dobili "look XP Windowsa" ili promijeniti izgled samim Windowsima (izmjeniti postavke sistemskoj datoteci - "logonui exe") i još puno toga!
Resource Hacker možete skinuti sa ovog linka >> Skini
Osnovne primjere, zamjena bitmape i dodavanje novih resursa, izvodićemo na "SFX" (Self -extracting) arhivi koju ćemo napraviti pomoću "WinRAR-a" (način stvaranja "SFX" arhive opisan je u prošlom postu - "UPX - komprimiranje i dekomprimiranje")!
Prvi primjer - zamjena bitmape
Napravite u nekom programu za crtanje-obradu fotografije (Photoshopu, Xari, a može i u Paintu) bitmapu veličine "93, 302 px" i spremite je.
a) Pokrenite "Resource Hacker", izaberite "File" pa "Open..." i učitajte vašu "SFX" arhivu.

b) Otvorite mapu resource "Bitmap" >> "101" i označite "1049".

C) Izaberite meni "Action" >> "Replace Bitmap...", pa u sljedećem prozoru izaberite "open file with new bitmap...", koji otvara novi prozoru "open" u kojem nakon odabira svoje bitmape kliknete na dugme "Open".

d) Nakon što odabrali i učitali svoju bitmapu, kliknite na dugme "Replace" i u meniju "File" izaberite "Save".

Podignite svoju "SFX" arhivu i pogledajte rezultat!
U sljedećem postu naučiti ćemo kako ubaciti - ulinkati nove resurse!
UPX kompresija-dekompresija
Raspakirajte "UPX" zip datoteku i smjestite je u korijenskom direktoriju ("X:upx", gdje je "X" oznaka vašeg diska, odnosno particije).
Zapravo, uopće nije bito gdje ćete smjestiti "UPX packer", ali je kasnije najlakše doći do "UPX" mape preko "Command Prompta" ako se dotična mapa nalazi u korijenskom direktoriju!
Možda vas bunim što upotrebljavam izraze "direktorij" i "mapa" zajedno (na neke stvari se ne možeš naviknuti), jer inače direktorij (directory) i mapa (folder) označavaju jednu te istu stvar.
U starijim okvirima za dijalog, riječ direktorij odnosi se na ono što danas, pod Windowsima, nazivamo mapom.
Idemo mi dalje! Pomoću "WinRAR-a" napraviti ćemo izvršnu datoteku na sljedeći način;
a) Napravite novi "Text Document" - klik na Desktop desnom tipkom miša, izaberite "New" > "Text Document" i nazovite ga "Proba".
b) Ponovo kliknite desnom tipkom miša, ali ovaj put na stvoreni dokument ("Proba.txt") i izaberite "WinRAR" opciju "Add files to archive", odnosno "Napravi arhivu" ako imate hrvatsku verziju "WinRAR-a". Zatim označite opciju "Create SFX archive", ili "Napravi SFX arhivu" , kliknite na "Ok" i dobili ste "SFX RAR arhivu - Proba", zapravo sada imamo izvršnu datoteku "Proba" koju ćemo komprimirati, a kasnije i dekomprimirati sa "UPX-om"!
Kompresija izvršne datoteke pomoću "UPX packera"!
Kopirajte "SFX RAR arhivu - Proba" u mapu upx ("X:upx"), pokrenite "Command Prompt" ("Start" > "Programs" > "Accessories" > "Command Prompt") ili ("Start" > "Run...," upišite "cmd" i pritisnite "Enter").
Upišite prvu naredbu u "Command Promptu";
"cd" (bez navodnika) i pritisnite "Enter" da bi ste se prebacili u korijenski direktorij!
Upišite novu naredbu "cd upx" da bi ušli u mapu "upx"!
Napokon, sada dolazi ono glavno, upišite naredbu "upx Proba.exe" da bi komprimirali našu "SFX RAR arhivu - Proba"

Probajete nakon komprimiranja otvoriti arhivu "Proba" sa "Resource Hackerom", neće ići, jer je datoteka "Proba" komprimirana, odnosno zaštićena "UPX" packerom.
Dekompresija izvršne datoteke pomoću "UPX packera!
Ok, sada ćemo arhivu "Proba" dekomprimirati! Ponovo pokrenite "Command Prompt", uđite u mapu "upx" i upišite sljedeću naredbu "upx -d Proba.exe", pritisnite "Enter" i naša će se arhiva dekomprimirati.

Par dodatnih objašnjenja;
Naredbe "DOS-a" (premda više službeno ne postoji);
CD = vraća u korijenski direktorij (root)
npr. - C:Program FilesMoja mapa>CD
C:>
CD.. = vraća iz poddirektorija u direktorij za jedni "stepenicu" bliže korijenskom direktoriju
npr. - C:Program FilesMoja mapa>CD..
C:Program Files>
CD = odlazak u točno određeni direktorij
npr. - C:>CD Program Files
C:Program Files>
-Nakon svakog unosa naredbe - pritisnuti tipku "ENTER", da bi se unesena naredba izvršila!
-"DOS" ne prepoznaje velika i mala slova, možete pisat CD ili cd.
-Direktorij i poddirektorij se međusobno odvajaju kosom crtom " " (back slash).
UPX sintaksa;
upx [ *naredba* ] [ *opcije* ] *ime datoteke*...(sa ekstenzijom - nastavkom)
-Za dekompresiju izvršne datoteke zadaje se naredba "-d " (decompress)
-Na Internetu možete skinuti grafičko sučelje za jednostavniji rad sa "UPX - packerom".
Crack, pogled iznutra (2)

Najpoznatiji programi, ali ne i jedini, su legendarni SoftICE i W32Dasm. Da bi ste znali koristiti dotične programe morate poznavati osnove assemblerskog jezika, heksadecimalni brojevni sustav, registre itd. Sada vam je vjerovatno jasno zašto su programeri najbolji crackeri!
Naravno, na ovom blogu nećete naći tutoriale posvećene crackiranju, ali moći ćete vremenom, zajedno samnom, naučiti assembler i c++ jezik, heksadecimalni i binarni brojevni sustav, upoznati ASCII umjetnost i naravno alate za debugiranje!
Jedan moj dobar prijatelj vječno je govorio;
Poznato je da su početnici nestrpljivi i da žele opipljive rezultate što prije, a to dovodi do brzog odustajanja, što nije ni moj, a ni vaš cilj!
Zato mi krećemo stranom manjeg otpora gdje ćemo upoznati naš prvi alat "Resource Hacker" i osnove rada s "UPX" packer-om.

Resource Hacker je alat (program) pomoću kojega možemo iz zadane .exe ("EXEcutable - izvršna datoteka, tip datoteke koji sadrži izvršni kod") izvući "ulinkane" resurse (ikone, bitmape, kursore, itd.), zamjeniti ih novim ili čak "ulinkati" - ubaciti nove, a sve to bez narušavanja integriteta izvršnog dijela koda koji je u njoj pohranjen.
Većina izvršnih datoteka je komprimirana i zaštićena nekim alatom (UPX, Armadillo, ASPack, itd.) za "pakiranje" odnosno komprimiranje izvršnih datoteka. Tako komprimirane i zaštićene izvršne datoteke nije moguće otvoriti sa "Resource Hackerom" i ostalim sličnim alatima. Dakle, prije upotrebe "Resource Hackera" obraditi ćemo osnove rada sa "UPX packerom" i s tim malim uvodom ulazimo u "svijet packera - PE Protectora".
UPX - Ultimate Packer for eXecutables
UPX je besplatan "packer" odnosno kompresor i(ili) dekompresor izvršnih datoteka u realnom vremenu (real - time compression). Jedan je od najpoznatijih - najraširenijih alata te vrste i koristi se u razne svrhe, od upotrebe u komercionalnim programima (WinRAR) pa sve do komprimiranja virusa.
Nemojte "miješati" "UPX" sa "WinZip-om" ili "WinRAR-om" jer radi se o različitim kategorijama alata za kompresiju odnosno dekompresiju.
"WinZip" odnosno "WinRAR" su programi za eksplicitno komprimiranje - dekomprimiranje. To znači da se pri svakoj operaciji kompresije - dekompresije mora određeni kompresor - dekompresor pokrenuti.
Da bi datoteke komprimirane (arhivirane) tim programima mogli dekomprimirati, morate imati instalirane dotične programe za kompresiju - dekompresiju u svom kompjuteru.
"UPX" pakira - komprimira (samo) izvršne datoteke (brzim algoritmima za sažimanje podataka u realnom vremenu) i dodaje u njih svoj "kod", koji omogućuje "automatsku" dekompresiju (u memoriju) tako pakirane - komprimirane izvršne datoteke. Drugim riječima, za izvršne datoteke pakirane - komprimirane UPX-om ili sličnim alatima nije potrebno imati dotični dekompresor za njihovo dekomprimiranje, odnosno za pokretanje tako pakiranih - komprimiranih programa.
Kao što smo rekli, UPX je kompresor i ujedno dekompresor pa s njim nećemo imati problema (osim u izuzetnim prilikama), ali većina ostalih sličnih alata - tzv. "PE Protectori" ("PE - Portabe Executabe, zajednički naziv za sve exe, dll, ActiveX i ostale datoteke koje sadržavaju izvršni kod, a izvršavaju se pod Windows platformama") ne sadrže i dotični dekompresor (sasvim logično, ne bi bili protectori).
Koji su najpoznatiji "Packeri - PE Protectori" i kako ih zaobići? Šta je to "Manual unpacking"? Odgovore na ta i druga pitanja dobiti ćemo vremenom!!!
Impresivan prikaz moći kompresije u realnom vremenu (naravno, ni "super kompresija" ne bi pomogla da sam rad nije briljantno napravljen) "demostrirala" je grupa "farbrausch consumer consulting" sa svojim demo programom "fr-08".
Recimo samo da se radi o demo programu trajanja 15 minuta na SVGA razlučivosti u punoj boji, plus glazbena podloga (sihronizirana sa videom) i sve to strpano u 64 kb (dobro ste pročitali - 64 kb).
Kliknite na donji link da bi skinuli ovo impresivno dijelo, na čiji rad bi se mogli ugledati i programeri današnjih "modernih" igara (zahtjevi za pokretanje fr -08 demo programa - DirectX 8 ili noviji, 128 MB osnovne memorije).
Skini fr-08
| < | svibanj, 2006 | > | ||||
| P | U | S | Č | P | S | N |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 | ||||
Dnevnik.hr
Gol.hr
Zadovoljna.hr
Novaplus.hr
NovaTV.hr
DomaTV.hr
Mojamini.tv
O blogu
Ne tako davno i ne tako daleko, iza brda i dolina, na crvenoj zemlji blizu mora, živio je mirno i
spokojno mali čovjek. Jednog dana, ne da vrag mira, odluči mali čovjek kupiti kompjuter i potvrditi
tezu da se kompjuterom više ne koriste samo stručnjaci i programeri.
Mislio je mali čovjek da će to biti mali korak za njega, ali...
