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
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ść]
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.
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ę.
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.
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.
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.
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%
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.
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.
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.
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!
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!
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
.
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
.
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.
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
.
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:
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:
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:
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
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