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