background image

Podr

ę

cznik: SystemInformation 

ś

ródło:  http://gpslab.pl/article_wstep_4364.html 

 
SystemInformation to potęŜne narzędzie, które w rękach zaawansowanego uŜytkownika potrafi odmienić obli-
cze praktycznie kaŜdej nawigacji GPS. Zapraszamy do obszernego opracowania w którym w wyczerpujący 
sposób opisaliśmy wszystkie opcje i ustawienia tej powłoki. Artykuł kończy się przystępnym poradnikiem, 
pokazującym jak krok po kroku stworzyć swoje pierwsze menu w SystemInformation. To drugi, po 

WolfNCU

tzw. shell, czyli powłoka na system operacyjny. Aplikacja (http://gpslab.pl/file_detale_4366.html) zajmuje bar-
dzo mało miejsca na dysku, bo tylko niecałe 67kB, więc nie 
zabiera równieŜ wiele zasobów. Wszystkie ustawienia, takie jak 
umiejscowienie grafik, domyślna akcja dla danego przycisku czy 
efekt przejścia, tworzymy edytując pliki INI. W tym artykule 
opiszemy dokładnie strukturę tych plików oraz wszystkie 
dostępne wartości dla parametrów. 
 
Najprościej wyobrazić sobie moŜliwości SystemInformation 
jako interaktywnej prezentacji w PowerPoint. KaŜdy osobny plik 
INI określa układ elementów na kolejnych slajdach oraz 
zaleŜności pomiędzy nimi. Jeden slajd a raczej strona moŜe być 
opisywana tylko przez jeden plik .INI, ale moŜe prowadzić do 
wielu innych pod stron z własnymi plikami .INI. 
Jak więc widać podobieństwem pomiędzy tymi dwoma 
powłokami jest oparcie się ich konfiguracji o pliki .INI.  
Największą róŜnicę najlepiej pokaŜą dwa diagramy. Pierwszy 
prezentuje układ menu zaprojektowanego przy pomocy 
WolfNCU:  
 
Jak widać jest on "płaski", czyli ogranicza się tylko do jednej 
strony głównej menu, z poziomu której aktywowane są 
poszczególne funkcje. 
 
UłoŜymy teraz diagram z tymi samymi funkcjami, tylko 
podzielonymi na kilka pod-menu, przygotowany dla 
SystemInformation:  RóŜnica pomiędzy tymi powłokami 
(shell'ami) jest bardzo duŜa. SystemInformation moŜe 
tworzyć dowolnie skomplikowane menu, z wieloma 
poziomami, odnoszące się do siebie i innych menu. W 
porównaniu do tego moŜliwości WolfNCU wypadają bardzo 
blado. 
Układ katalogów w SystemInformation jest dowolny. Tylko 
trzy pliki są obowiązkowe: 
SystemInformation.exe -główny plik wykonywalny 
SysInfoSettings.ini -plik zawiera ścieŜkę do pierwszego 
pliku .INI, który zostanie wczytany jako pierwszy po 
uruchomieniu aplikacji 
Plik .INI -jego nazwa jest dowolna, ma być wskazana w 
SysInfoSettings.ini 
Takie podejście do tematu daje szereg moŜliwości i jest 
niezmiernie elastyczne - moŜemy przyjąć dowolny układ 
katalogów i np. wydzielić katalog dla grafik, dla plików 
wykonywalnych i dla plików INI. To wszystko zaleŜy tylko od naszego wyboru. 
Pierwszy i najwaŜniejszy z plików .INI, wspominaliśmy o nim na poprzedniej stronie. Plik ten musi być w ka-
talogu razem z SystemInformation.exe   Wskazuje on pierwszy plik .INI jaki ma zostać wczytany po urucho-
mieniu aplikacji. PoniŜej kilka przykładów: 
 

narzędzia.ini   

..\SDMMC\SystemInformation\narzedzia.ini 

 

..\narzedzia\main.ini 

background image

KaŜdy plik .INI jaki opracujemy, poza SystemInformation.ini, musi zawierać jeden (i tylko jeden) element 
typu 

GLOBALSETTINGS

. Umieszcza się go na samym początku pliku. Przykładowa definicja elementu 

wygląda następująco: 

GLOBALSETTINGS 
ShowMessage = 0 
QuitOnDoubleClick = no 
X = 0 
Y = 0 
Width = 320 
Height = 240 
Arrange = No 
BackgroundBitmap = ..\background.bmp 
StartUpAnimation = FlyLeft 
Accelerated = yes 
TopMost = yes 

Podgląd: 

 

 

UŜywając GLOBALSETTINGS musimy za kaŜdym razem definiować rozmiary okna, takie jak rozdzielczość 
ekranu nawigacji (PNA), dla której projektujemy menu. 

Atrybuty elementu GLOBALSETTINGS: 

BackgroundColor = [kolor] 
Na przykład 00000 lub FFFFFF. Bez # przed wartością koloru 
 
Width = [wartość] 
Szerokość okna 
 
Height = [wartość] 
Wysokość okna 
 
X = [wartość] 
Pozycja okna w stosunku do lewej krawędzi 
 
Y = [wartość] 
Pozycja okna w stosunku do górnej krawędzi 
 
BackgroundBitmap = [ścieŜka] 
Ś

cieŜka do pliku tła, kończąca się nazwą pliku. Uwaga, tylko pliki .BMP 

 
BitmapOffsetX = [wartość] 
Odległość tła od lewej krawędzi, wyraŜona w pikselach. JeŜeli X został zdefiniowany wcześniej, wtedy przesu-
nięcie od lewej liczy się od jego wartości. 
 
BitmapOffsetY = [wartość] 
Odległość tła od górnej krawędzi wyraŜona w pikselach. JeŜeli wcześniej zdefiniowany został Y, wtedy prze-
sunięcie liczy się od góry plus jego wartość . 
 
Border = [wartość] 
Ramka wokół okna. Wartość musi być dodatnia. 
 
Distance = [wartość] 

background image

Wartość wyraŜona w pikselach określa odstęp pomiędzy poszczególnymi elementami. UŜywane tylko przy 
automatycznym pozycjonowaniu elementów. 
 
Arrange = [vertically/horizontal/NO] 
Automatyczne rozmieszczenie elementów w poziomie (vertically), pionie (horizontal) lub wyłączone (No). 
JeŜeli wartość ustawiamy jako NO, wtedy do pozycjonowania elementów na stronie uŜywane są ich własne 
ustawienia X oraz Y. 
 
QuitOnDoubleClick = [Yes/No] 
JeŜeli wartość jest ustawiona na Yes, wtedy podwójne kliknięcie spowoduje zamknięcie programu SystemIn-
formation. 
 
StartUpAnimation = [animacja] 
Wskazuje animację (efekt przejścia) z jaką zostanie pokazane okno tworzone dla tego pliku .INI 
 
ShutDownAnimation = [animacja] 
Wskazuje animację (efekt przejścia) z jaką zostanie zamknięte okno tworzone dla tego pliku .INI 
 
Accelerated = [Yes/No] 
Funkcja w chwili obecnej nie jest jeszcze w pełni zaimplementowana, jednak zaleca się uŜywanie jej z warto-
ś

cią Yes. 

 
AnimationTime = [Yes/No] 
Czas trwania animacji wyraŜony w milisekundach. 1 sekunda = 1000 milisekund 
 
TopMost = [Yes/No] 
Przy wartości Yes okno SystemInformation będzie wyświetlane ponad innymi.  
 

background image

 

Za pomoc

ą

 elementu TEXT

 moŜemy umieścić dowolny tekst na ekranie urządzenia. Mamy wpływ na jego 

umiejscowienie oraz wygląd. Jeden element typu TEXT tworzy tylko jedną linijkę tekstu, bez moŜliwości "za-
łamania" go. Co oznacz Ŝe jeśli chcemy np. pokazać dłuŜszy tekst na ekranie, to musimy uŜyć kilku elementów 
TEXT, po jednym dla kaŜdej linii. 
PoniŜej dwa przykłady definicji elementu TEXT w pliku INI oraz efekt ich działania: 

TEXT 
x = 30 
y = 30 
Text = Tak wygląda TEXT 
Color = FFFF00 
FrameColor = 000000 
Weight = 700 
Size = 32 
CreateFont 

Podgląd: 

 

 
Po lekkich zmianach ten sam element: 

TEXT 
x = 30 
y = 30 
Text = Tak wygląda tekst, niestety nie jest zawijany... 
Color = FFFFFF 
FrameColor = 000000 
Weight = 700 
Size = 16 
CreateFont 

Podgląd: 

 

Atrybuty elementu TEXT: 

Color = [kolor] 
Kolor elementu, podawany bez #. Np. 000000 lub FFFFFF. 
 
FrameColor = [kolor] 
Kolor obramowania tekstu. 
 
Text = [tekst] 
Tekst jaki ma zostać wyświetlony 
 
Font = [font] 
Ustawia czcionkę. 

background image

 
Size = [wartość] 
Wielkość tekstu w pikselach. 
 
Weight = [wartość] 
Waga czcionki. Im wyŜsza tym grubsza czcionka. Przy wartości 700 wygląda jak pogrubienie. 
 
CreateFont 
Element obowiązkowy, tworzy tekst na ekranie. 
 
x = [wartość] 
Pozycja w stosunku do lewej krawędzi ekranu. Przy wartości ujemnej w stosunku do prawej krawędzi. Aktyw-
ne gdy nie wybrano automatycznego rozmieszczenia w Arrange w sekcji GLOBALSETTINGS. 
 
y = [wartość] 
Pozycja w stosunku do lewej krawędzi ekranu. Przy wartości ujemnej w stosunku do prawej krawędzi. Aktyw-
ne gdy nie wybrano automatycznego rozmieszczenia w Arrange w sekcji GLOBALSETTINGS. 
 

background image

 

U

Ŝ

ywaj

ą

c elementu MEMORY

 moŜemy wyświetlić aktualne informacje o dostępnej pamięci fizycznej i 

wirtualnej. Wartość moŜe być podana zarówno jako tekst, jak i dwa rodzaje pasków postępu. Przykładowa de-
finicja tego elementu w pliku INI: 
 

MEMORY 
x = -24 
y = 132 
Width = 144 
PhysMemBar = yes 
PhysMemValue = yes 
PhysMemString = yes 
CoolVirtMemBar = no 
VirtMemString = no 
VirtMemValue = no 
VirtMemPercent = no 
CenterValue = no 
TextColor = A0A0A0 
BorderColor = 000000 
BackgroundColorLow = BF2020 
BackgroundColorHigh = 20BF20 

Podgląd: 

 

 
Inny przykład uŜycia elementu MEMORY: 

MEMORY 
x = 25 
y = 50 
Width = 270 
PhysMemBar = yes 
PhysMemValue = yes 
PhysMemString = no 
CoolVirtMemBar = no 
VirtMemBar = yes 
VirtMemString = yes 
VirtMemValue = no 
VirtMemPercent = yes 
CenterValue = yes 
TextColor = 000000 
BorderColor = 000000 
BackgroundColorLow = BF2020 
BackgroundColorHigh = 20BF20 

Podgląd: 

 

Atrybuty elementu MEMORY: 

Color = [kolor] 
Kolor elementu, podawany bez #. Np. 000000 lub FFFFFF. 
 
TextColor = [kolor] 
Kolor tekstu, podawany bez #. Np. 000000 lub FFFFFF. 
 
FrameColor = [kolor] 
Kolor ramki, podawany bez #. Np. 000000 lub FFFFFF. 

background image

 
BackgroundColorLow = [kolor] 
Definiuje kolor paska pokazywanego, gdy wartość spadnie poniŜej 25% 
 
BackgroundColorHigh = [kolor] 
Definiuje kolor paska pokazywanego, gdy wartość wzrośnie powyŜej 75% 
 
PhysMemString = [Yes/No] 
Przy wartości Yes pokazuje informacje o pamięci fizycznej w postaci tekstu. 
 
PhysMemBar = [Yes/No] 
Przy wartości Yes pokazuje informacje o pamięci fizycznej w postaci paska. 
 
CoolPhysMemBar = [Yes/No] 
j.w., przy czym pokazuje lepiej wyglądający pasek postępu: 

 

 
PhysMemValue = [Yes/No] 
Pokazuje ilość dostępnej pamięci w formie tekstu, np. „27.95MB / 45.11MB” 
 
PhysMemPercent = [Yes/No] 
CoolVirtMemBar = [Yes/No] 
Podobnie jak CoolPhysBar, tylko dotyczy pamięci wirtualnej. 
 
VirtMemString = no 
Przy wartości Yes pokazuje informacje o pamięci wirtualnej w postaci tekstu. 
 
VirtMemValue = no 
Pokazuje ilość dostępnej pamięci w formie tekstu, np. „27.25MB /32.00MB” 
 
VirtMemPercent = [Yes/No] 
CenterValue = [Yes/No] 
Określa czy wyświetlany tekst powinien być wyśrodkowany. 
 
Interval = [liczba] 
Częstotliwość odświeŜania wskaźników podana w milisekundach. Domyślnie wartość ta jest ustawiona na 10 
minut. 
 
x = [wartość] 
Pozycja w stosunku do lewej krawędzi ekranu. Przy wartości ujemnej w stosunku do prawej krawędzi. Aktyw-
ne gdy nie wybrano automatycznego rozmieszczenia w Arrange w sekcji GLOBALSETTINGS. 
 
y = [wartość] 
Pozycja w stosunku do lewej krawędzi ekranu. Przy wartości ujemnej w stosunku do prawej krawędzi. Aktyw-
ne gdy nie wybrano automatycznego rozmieszczenia w Arrange w sekcji GLOBALSETTINGS. 

background image

U

Ŝ

ywaj

ą

c elementu DISKMEM

 moŜemy wyświetlić informacje związane z przestrzenią dyskową. Mo-

Ŝ

emy uŜyć kilku wskaźników jednocześnie, np. jeden dla pamięci flash a drugi dla pamięci wbudowanej. Przy-

kładowe uŜycie elementu DISKMEM: 
 

DISKMEM 
x = 25 
y = 30 
Width = 270 
Folder = \ 
ShowPath = no 
CoolBar = yes 
Percent = yes 
Value = yes 
CenterValue = no 
TextColor = 000000 
BorderColor = 000000 
BackgroundColorLow = BF2020 
BackgroundColorHigh = 20BF20 
LightColor = FFFFFF 

Podgląd: 

 

 
Drugi przykład, drobne zmiany w kodzie: 

DISKMEM 
x = 0 
y = 0 
Width = 320 
Folder = c:\ 
ShowPath = no 
CoolBar = yes 
Percent = yes 
Value = no 
CenterValue = yes 
TextColor = 000000 
BorderColor = 000000 
BackgroundColorLow = FF0000 
BackgroundColorHigh = 0cff00 
LightColor = FFFFFF 

Podgląd: 

 

Atrybuty elementu DISKMEM: 

Color = [kolor] 
Kolor elementu, podawany bez #. Np. 000000 lub FFFFFF. 
 
TextColor = [kolor] 
Kolor tekstu, podawany bez #. Np. 000000 lub FFFFFF. 
 
FrameColor = [kolor] 
Kolor ramki, podawany bez #. Np. 000000 lub FFFFFF. 
 
BackgroundColorLow = [kolor] 
Definiuje kolor paska pokazywanego, gdy wartość spadnie poniŜej 25% 
 
BackgroundColorHigh = [kolor] 
Definiuje kolor paska pokazywanego, gdy wartość spadnie powyŜej 25% 

background image

 
Folder = [ścieŜka] ŚcieŜka do folderu którego ilość wolnego (zajętego) miejsca będzie pokazana. Np.: 
”\” by wyświetlić ilość wolnego miejsca w pamięci PNA „\SDMMC” lub „\Flash Storage” by wyświetlić ilość 
wolnego miejsca na karcie pamięci. 
 
ShowPath = [Yes/No] 
Pokazuje pole ze ścieŜką do katalogu, którego ilość wolnego miejsca jest sprawdzana. 
 
Bar = [Yes/No] 
Przy wartości Yes pokazuje informacje o wolnym miejscu w postaci paska. 
 
CoolBar = [Yes/No] 
j.w., przy czym pokazuje lepiej wyglądający pasek postępu. 
 
Percent = [Yes/No] 
Pokazuje wartość procentową wolnej przestrzeni. 
 
Value = [wartość] 
Definiowanie wartości początkowej (po uruchomieniu aplikacji). 
 
CenterValue = [Yes/No] 
Określa czy wyświetlany tekst powinien być wyśrodkowany. 
 
Interval = [liczba] 
Częstotliwość odświeŜania wskaźników podana w milisekundach. Domyślnie wartość ta jest ustawiona na 10 
minut. 
 
x = [wartość] 
Pozycja w stosunku do lewej krawędzi ekranu. Przy wartości ujemnej w stosunku do prawej krawędzi. Aktyw-
ne gdy nie wybrano automatycznego rozmieszczenia w Arrange w sekcji GLOBALSETTINGS. 
 
y = [wartość] 
Pozycja w stosunku do lewej krawędzi ekranu. Przy wartości ujemnej w stosunku do prawej krawędzi. Aktyw-
ne gdy nie wybrano automatycznego rozmieszczenia w Arrange w sekcji GLOBALSETTINGS. 

background image

U

Ŝ

ywaj

ą

c elementu BATTERY

 moŜemy wyświetlić informacje o stanie naładowania akumulatora w 

PNA. Przykładowa definicja z pliku .INI: 
 

BATTERY 
x = 100 
y = -24 
Width = 120 
Height = 24 
ColorBattery = A0A0A0 
ColorHigh = 00A000 
ColorLow = A0A000 
ColorCritical = A00000 
Segments = 10 

Podgląd: 

 

Inny przykład uŜycia elementu BATTERY, wyświetla on stan baterii w prawym górnym rogu: 

BATTERY 
x = -2 
y = 2 
Width = 40 
Height = 10 
ColorBattery = 000000 
ColorHigh = 00A000 
ColorLow = A0A000 
ColorCritical = A00000 
CoolBattery = No 
Segments = 10 

Podgląd: 

 

Atrybuty elementu BATTERY: 

ColorBattery = [kolor]  
Kolor elementu, podawany bez #. Np. 000000 lub FFFFFF. 
 
ColorCritical = [kolor] 
Kolor elementu, przyjmowany gdy wartość naładowania akumulatora spadnie poniŜej 33%, podawany bez #. 
Np. 000000 lub FFFFFF. 
 
ColorLow = [kolor] 
Kolor elementu, przyjmowany gdy wartość naładowania akumulatora spadnie poniŜej 66%, podawany bez #. 
Np. 000000 lub FFFFFF. 
 
ColorHigh = [kolor] 
Kolor elementu, przyjmowany gdy wartość naładowania akumulatora wynosi powyŜej 66%, podawany bez #. 
Np. 000000 lub FFFFFF. 

background image

 
CoolBattery = [Yes/No] 
Nowy wygląd paska stanu: 

 

 
ColorArrow = [kolor] 
Segments = [wartość] 
Ilość segmentów na które „podzielona” jest bateria z elementu CoolBattery 
 
Test = [Yes/No] 
Wartość słuŜąca do testowania aplikacji. UmoŜliwia zmianę wartości wyświetlanej przez ikonkę baterii. Klika-
jąc na niej moŜna zmieniać jej wartość. 
 
Interval = [liczba] 
Częstotliwość odświeŜania wskaźników podana w milisekundach. Domyślnie wartość ta jest ustawiona na 10 
minut. 
 
x = [wartość] 
Pozycja w stosunku do lewej krawędzi ekranu. Przy wartości ujemnej w stosunku do prawej krawędzi. Aktyw-
ne gdy nie wybrano automatycznego rozmieszczenia w Arrange w sekcji GLOBALSETTINGS. 
 
y = [wartość] 
Pozycja w stosunku do lewej krawędzi ekranu. Przy wartości ujemnej w stosunku do prawej krawędzi. Aktyw-
ne gdy nie wybrano automatycznego rozmieszczenia w Arrange w sekcji GLOBALSETTINGS. 

background image

Korzystaj

ą

c elementu typu TIME

 moŜemy na wyświetlaczu podać aktualny czas. MoŜemy zdefiniować 

wygląd zegara, który będzie pokazywany jako tekst. Przykładowa definicja elementu: 

TIME 
x = 40 
y = 40 
Color = 000000 
Format = 'Godzina:' HH':'mm' 
Size = 32 
Weight = 700 
CreateFont 
Interval = 60000 

Podgląd: 

 

Tym razem umieścimy zegar w prawym dolnym rogu: 

TIME 
x = -2 
y = -2 
Color = FF0000 
Format = HH':'mm 
Size = 12 
Weight = 700 
CreateFont 
Interval = 60000 

Podgląd: 

 

Atrybuty elementu TIME: 

ColorBattery = [kolor]  
Kolor elementu, podawany bez #. Np. 000000 lub FFFFFF. 
 
Format = [ciąg znaków] 
Opis czasu zgodnie z wytycznymi ze strony 

MSDN Library

 
Interval = [liczba] 
Częstotliwość odświeŜania wskaźników podana w milisekundach. Domyślnie wartość ta jest ustawiona na 60 
sekund. 
 
Do konfigurowania wyglądu elementu TIME musimy uŜyć atrybutów elementu 

TEXT

. Bez CreateFont zegar 

nie zostanie pokazany! 

background image

Element typu DATE

 słuŜy do wyświetlania aktualnej daty. Przykładowa definicja elementu: 

DATE 
x = 16 
y = 8 
Color = A0A0A0 
Size = 32 
Weight = 700 
CreateFont 

Podgląd: 

 

 
Drugi przykład: 

DATE 
x = -10 
y = 8 
Format = 'Dzisiaj jest:'yyyyy-
MM-dd' 
Color = FFAA00 
Size = 20 
Weight = 700 
CreateFont 

Podgląd: 

 

Atrybuty elementu DATE: 

Format = [ciąg znaków] 
Opis daty zgodnie z wytycznymi ze strony 

MSDN Library

 
Interval = [liczba] 
Częstotliwość odświeŜania wskaźników podana w milisekundach. Domyślnie wartość ta jest ustawiona na 10 
minut. 
 
Do konfigurowania wyglądu elementu TIME musimy uŜyć atrybutów elementu 

TEXT

. Bez CreateFont zegar 

nie zostanie pokazany! 

background image

Element ICONXPBUTTON

 to zwykła ikona Windows. Jest to skrót do programu, który zostanie uru-

chomiony. Do prawidłowego wyświetlania elementów naleŜy uŜywać ikon 32-bitowych, zapisanych jako .ICO 
     Przykładowa definicja elementu ICONXPBUTTON z pliku .INI: 

ICONXPBUTTON 
x = -24 
y = 22 
Command = \SDMMC\Program Fi-
les\Help\Help.exe 
SizeNormal = 96 
SizePushed = 128 
ScaleAlpha = 90 
IconNormal = ..\menu\help.ico 
ScaleAlpha = 100 
IconPushed = ..\menu\Help.ico 

Podgląd: 

 

Drugi przykład: 

ICONXPBUTTON 
x = 40 
y = 40 
NewIni = ..\Apps\apps.ini 
SizeNormal = 48 
SizePushed = 48 
Add = -92 
ScaleAlpha = 33 
IconNormal = ..\menu\Dashboard.ico 
ScaleAlpha = 100 
IconPushed = ..\menu\Dashboard.ico 
ShutDownAnimation = FlyLeft 

Podgląd: 

 

Atrybuty elementu ICONXPBUTTON:: 

SizeNormal = [wartość
Wymiar ikony w pikselach. 
 
SizePushed = [wartość] 
Wymiar ikony gdy zostanie aktywowana (kliknięta), w pikselach. 
 
IconNormal = [ścieŜka] 
Ś

cieŜka do pliku z ikoną w stanie nieaktywnym („nie-klikniętą”), kończąca się nazwą pliku. Uwaga, tylko pliki 

.ICO 
 
IconPushed = [ścieŜka] 
Ś

cieŜka do pliku z ikoną w stanie aktywnym („klikniętą”), kończąca się nazwą pliku. Uwaga, tylko pliki .ICO 

 
ScaleRed , ScaleGreen, ScaleBlue, ScaleAlpha , AddRed ,AddGreen, AddBlue, AddAlpha Gray  
JeŜeli ktoś przetłumaczy sensownie opis tych atrybutów z tej strony: , to ma duŜe piwo. 
 
Dodatkowo element ICONXPBUTTON uŜywa wszystkich atrybutów elementu 

BUTTON

background image

Element BITMAPBUTTON

 słuŜy do wyświetlania obrazków .BMP (bitmap). Elementy te mogą uru-

chamiać inne aplikacje. 

BITMAPBUTTON 
x = 100 
y = 100 
NewIni = ..\Tools\narzedzie.exe 
Width = 50 
Height = 50 
BitmapNormal = ..\menu\wiewiorka.bmp 
BitmapPushed = ..\menu\wiewiorka.bmp 

Podgląd: 

 

Drugi przykład: 

BITMAPBUTTON 
x = 82 
y = 0 
NewIni = ..\Tools\TRE.exe 
Width = 156 
Height = 153 
BitmapNormal = ..\menu\rejestr.bmp 
BitmapPushed = ..\menu\rejestr.bmp 

Podgląd: 

 

Atrybuty elementu BITMAPBUTTON: 

BitmapNormal = [ścieŜka]  
Ś

cieŜka do pliku z elementem w stanie nieaktywnym („nie-kliknięty”), kończąca się nazwą pliku.  

 
BitmapPushed = [ścieŜka]  
Ś

cieŜka do pliku z elementem w stanie aktywnym („klikniętym”), kończąca się nazwą pliku.  

 
Offset = [wartość 
Po kliknięciu (aktywowaniu) elementu zostanie on przesunięty o wartość Offset. Jedyne działające wartości to 
0 i 1 
 
Dodatkowo element BITMAPBUTTON uŜywa wszystkich atrybutów elementu 

BUTTON

background image

Element BUTTON

 tworzy niewidoczny przycisk, którego rozmiary muszą być wcześniej zdefiniowane. 

Przycisk ten moŜe uruchamiać inne aplikacje.  Z atrybutów elementu BUTTON korzystają elementy: 

ICONXPBUTTON

WINDOWSBUTTON

 oraz 

BITMAPBUTTON

 
Przykładowa definicja elementu BUTTON w pliku .INI 

BUTTON 
x = 0 
y = 228 
Height = 12 
Width = 320 
Command = "\Program Fi-
les\ShowTaskbar.exe" 

Atrybuty elementu BUTTON: 

Command = [ścieŜka] 
Ś

cieŜka do pliku wykonywalnego. 

 
NewIni = [ścieŜka] 
Ś

cieŜka do nowego pliku .INI, jeŜeli ten atrybut jest ustawiony, to spowoduje to przejście do kolejnej strony, 

opisanej wskazanym plikiem .INI 
 
ShutDownAnimation = [animacja] 
Animacja jaka zostanie pokazana w trakcie zamykania obecnej strony, lub zmiany na inną stronę. 
 
QuitOnExecute = [Yes/No] 
Zamyka SystemInformation przed uruchomieniem wskazanego w polu COMMAND polecenia. Warto to zrobić 
przed uruchomieniem np. programu do nawigacji. 
 
Szerokość = [wartość] 
Szerokość elementu podana w pikselach. 
 
Height = [wartość] 
Wysokość elementu podana w pikselach. 
 
x = [wartość] 
Pozycja w stosunku do lewej krawędzi ekranu. Przy wartości ujemnej w stosunku do prawej krawędzi. Aktyw-
ne gdy nie wybrano automatycznego rozmieszczenia w Arrange w sekcji GLOBALSETTINGS. 
 
y = [wartość] 
Pozycja w stosunku do lewej krawędzi ekranu. Przy wartości ujemnej w stosunku do prawej krawędzi. Aktyw-
ne gdy nie wybrano automatycznego rozmieszczenia w Arrange w sekcji GLOBALSETTINGS. 
 

background image

Ostatni z elementów typu BUTTON

 to zwykły przycisk, taki jak znamy z Windows. Po jego aktywo-

waniu (kliknięciu) moŜe zostać uruchomiona aplikacja, bądź otwarty plik. Przykładowa definicja elementu 

WINDOWSBUTTON

 w pliku INI: 

WINDOWSBUTTON 
x = 100 
y = 110 
Width = 200 
Height = 50 
Text = Przycisk 
ColorPushed = AAAAAA 
NewIni = ..\SysInfo\sysinfo.ini 
ShutDownAnimation = FlyDiagLeftDown 

Podgląd: 

 

Atrybuty elementu WINDOWSBUTTON:: 

ColorNormal = [kolor] 
Kolor przycisku, w stanie nieaktywnym („nie-klikniętym”), podawany bez #. Np. 000000 lub FFFFFF. 
 
ColorPushed = [kolor] 
Kolor przycisku, w stanie aktywnym („klikniętym”), podawany bez #. Np. 000000 lub FFFFFF. 
 
Dodatkowo element WINDOWSBUTTON uŜywa wszystkich atrybutów elementu 

BUTTON

 

background image

Niniejszy poradnik jest moŜliwie wiernym tłumaczeniem oryginalnego poradnika, stworzonego przez Daniela 
Schumanna a znajdującego się pod tym 

adresem

  http://www.ultimatelaunch.de/ 

 
Celem tego poradnika jest stworzenie prostego menu, które będzie przypominało pulpit systemu Windows XP:  

 

 
Krok 1: Tworzenie katalogu 
Tworzymy na dysku katalog XpSkin. 
 
Krok 2: Kopiowanie plików 
Do nowo utworzonego katalogu XpSkin kopiujemy pliki SystemInformation32.exe i SystemInformation.exe 
 
Krok 3: Tworzenie pliku Skin.ini 
Za pomocą edytora tekstu, np. notatnika (notepad.exe) tworzymy nowy plik. Jego zawartość:  
GLOBALSETTINGS 
X = 0 
Y = 0 
Width = 320 
Height = 240 
Arrange = No  
QuitOnDoubleClick = no 
 
Nazwiemy go Skin.ini i zapiszemy w katalogu XpSkin. Odpowiednie kodowanie jest tutaj bardzo waŜne. 
Przed zapisaniem naleŜy upewnić się Ŝe zapisywany plik jest w formacie Unicode:  

 

background image

 
Ustawienia jakie zapisaliśmy w pliku Skin.ini spowodują utworzenie okna programu we współrzędnych 0,0 i o 
rozmiarach 320x240 pikseli. QuitOnDoubleClick = no zabezpiecza nas przed zamknięciem programu, poprzez 
podwójne kliknięcie. 
 
Krok 4: Edycja pliku SysInfoSettings.ini 
Tworzymy plik o nazwie SysInfoSettings.ini o następującej zawartości:  
Skin.ini 
Następnie zapisujemy go w katalogu XpSkin, stworzonym w kroku pierwszym. 
 
Krok 5. Test (opcjonalny) 
Teraz moŜemy sprawdzić czy zapisaliśmy wszystko prawidłowo, uruchamiając program SystemInfo32.exe. 
JeŜeli postępowaliśmy zgodnie ze wskazówkami, wtedy program uruchomi się bez problemu. 
Na tym etapie zawartość katalogu XpSkin powinna wyglądać następująco:  

 

 
Krok 6. Dodawanie tła 
Z katalogu C:\WINDOWS\Web\Wallpaper (w Windows XP) wybieramy interesujące nas tło, zmieniamy jego 
rozmiar do 320x240 pikseli i zapisujemy jako background.bmp w katalogu XpSkin. Następnie edytujemy plik 
Skin.ini i dodajemy w nim następującą linijkę:  
BackgroundBitmap = background.bmp 
 
Krok 7. Pierwsza ikona 
Standardowo na pulpicie Windows mamy elementy Kosz, Mój Komputer oraz Moje Dokumenty. Taki sam 
układ postaramy się odtworzyć i tutaj. 
W tym celu tworzymy podkatalog Icons w katalogu XpSkin. W nim zapisujemy ikony jakie będą nam po-
trzebne. W naszym przykładzie wybierzemy ikony Monitor 1.ico (zapisujemy jako My Computer.ico), Folder 
Blue.ico
 (zapisujemy jako My Documents.ico) i Recycle Bin Empty.ico z paczki 

iCandy

.  

http://www.iconaholic.com/downloads.html 
Wszystkie ikony uŜywane przez SystemInformation muszą być 32 bitowe, czyli z 8 bitami przezroczystości. W 
tej chwili katalog powinien wyglądać tak:  

background image

 

 
Teraz dodamy pierwszą ikonę. W tym celu otwieramy do edycji plik Skin.ini i dodajemy na jego końcu nastę-
pujący tekst:  

ICONXPBUTTON 
x = 10 
y = 10 
Command = \ 
SizeNormal = 48 
SizePushed = 48 
IconNormal = Icons\My Computer.ico 
IconPushed = Icons\My Computer.ico 
 
WaŜne jest by przed ICONXPBUTTON dodać pustą linię. Po pustej linii program rozpoznaje kolejny element, 
więc jeŜeli jej nie będzie, wtedy program po prostu się „pogubi”, czego efekty mogą być trudne do przewidze-
nia. Teraz po uruchomieniu SystemInformation32.exe powinniśmy zobaczyć taki ekran:  

 

background image

 
Krok 8. Pozostałe ikony 
Skoro juŜ wiemy jak, to dodajemy kolejne dwie ikony. W tym celu otwieramy do edycji plik Skin.ini i na jego 
końcu dopisujemy następujący tekst:  
ICONXPBUTTON 
x = 10 
y = 68 
Command = \Storage Card 
SizeNormal = 48 
SizePushed = 48 
IconNormal = Icons\My Documents.ico 
IconPushed = Icons\My Documents.ico 
 
ICONXPBUTTON 
x = -10 
y = -40 
Command = {000214A1-0000-0000-C000-000000000046} 
SizeNormal = 48 
SizePushed = 48 
IconNormal = Icons\Recycle Bin Empty.ico 
IconPushed = Icons\Recycle Bin Empty.ico 
 
Krok 9. Pasek zadań 
Kolejnym elementem potrzebnym by upodobnić nasze menu do pulpitu Windows jest dodanie paska zadań. W 
tym celu musimy otworzyć w programie do edycji grafiki plik background.bmp, a następnie zrobić zrzut 
ekranu obecnego paska Windows ze swojego pulpitu i obrobić go tak by pasował do naszej grafiki. 
Po zakończeniu tego etapu menu powinno wyglądać następująco:  

 

 
10. Zegarek i bateria 
Na pasku zadań nie moŜe zabraknąć zegarka i informacji o stanie baterii. Dodamy je edytując ponownie plik 
Skin.ini. Na jego końcu dodajemy następujący tekst:  
TIME 
x = -6 
y = -6 
Format = HH':'mm 
Color = 000000 
 
BATTERY 
x = -50 
y = -8 
Height = 12 
Width = 32 
ColorBattery = FFFFFF 

background image

 
Krok 11. Skrót do programu do nawigacji 
Tam gdzie w systemie Windows znajduje się Menu Start u nas jest tylko grafika. Zmienimy to dodając w tym 
miejscu niewidoczny element BUTTON, który będzie uruchamiał nawigację. 
Drugi dodawany przycisk spowoduje pokazanie paska zadań. 
Na końcu pliku Skin.ini dodajemy następujący tekst:  
BUTTON 
x = 1 
y = -1 
Height = 29 
Width = 96 
COMMAND = \ścieŜka do programu nawigacyjnego 
QuitOnExecute = yes 
 
BUTTON 
x = 100 
y = -1 
Height = 29 
Width = 130 
COMMAND = \Programs\ShowTaskbar.exe 
 
Przy pierwszym przycisku, tym który będzie uruchamiał nawigację dodaliśmy atrybut QuitOnExecute o warto-
ś

ci Yes. Dzięki temu wszystkie zasoby sprzętowe zostaną zwolnione przed uruchomieniem wskazanego pro-

gramu do nawigacji. 
Program ShowTaskbar.exe moŜna pobrać ze 

strony autora

 

http://www.ultimatelaunch.de/

  jak równieŜ z na-

szego działu Pliki. NaleŜy pobrać archiwum, rozpakować je, utworzyć podkatalog Programs w katalogu Xp-
Skin
 i skopiować tam plik ShowTaskbar.exe 
 
 
W tym 

wątku na Forum

 

http://forum.gpslab.pl/showthread.php?t=338

  moŜecie pobrać archiwum ze wszystki-

mi plikami omówionymi w powyŜszym poradniku. Wątek ten jest teŜ miejscem, w którym zapraszamy do dys-
kusji na temat moŜliwości SystemInformation. JeŜeli stworzyłeś(aś) ciekawe menu uŜywając np. SystemInfor-
mation, to podziel się tym z innymi uŜytkownikami. 
 
 
 

ś

ródło:  http://gpslab.pl/article_wstep_4364.html