Dodawanie wersji

tomaszos

Napewno wiesz co to jest wersja w pliku exe. Gdy klikniemy na plik prawym przyciskiem myszy i wejdziemy we właściwości to jest tam zakładka Wersja. I to mi chodzi. Jak dodać taką wersje do swojego programu? Są dwa sposoby. Pierwszy: W menu delphi klikasz Project a później Options wybierasz zakłedke Version Info, zaznaczasz ,,Include version information in project" i edytujesz.

A drugi, mówiąc skromnie wymyślony przezemnie (czekam na patent :D) jest bardziej skomplikowany. Najpierw uruchamiamamy notatnik i wpisujemy:

1 VERSIONINFO LOADONCALL MOVEABLE
FILEVERSION 1, 0, 0, 0
PRODUCTVERSION 1, 0, 0, 0
{
BLOCK "StringFileInfo"
{
BLOCK "040904E4"
{
VALUE "Autor", "cos tam/000"
VALUE "FileDescription", "cos tam/000"
VALUE "FileVersion", "1.0/000"
VALUE "InternalName", "cos tam/000"
VALUE "LegalCopyright", "brak/000"
VALUE "OriginalFilename", "nie powiem!/000"
VALUE "Data wydania", "13 Grudnia 1974/000"
VALUE "ProductName", "cos tam/000"
VALUE "ProductVersion", "1.0/000"
VALUE "co jest?", "nico/000"
VALUE "bardzo ważna iformacja", "ty żyjesz!/000"
VALUE "Comments", "blablabla/000"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x0415 0x04B0
}
}

To jest kod w asseblerze. Każda wartość musi się kończyć znakami /000". Morzemy dodawać to co nam sie podoba (przykładem jest wpis ,,co jest?") i odejmować! Np.

1 VERSIONINFO LOADONCALL MOVEABLE
FILEVERSION 1, 0, 0, 0
PRODUCTVERSION 1, 0, 0, 0
{
BLOCK "StringFileInfo"
{
BLOCK "040904E4"
{
VALUE "bardzo ważna iformacja", "ty żyjesz!/000"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x0415 0x04B0
}
}

Niektóre wpisy windows tłumaczy. A oto one:

FileDescription - Opis (nie pojawi się na liście ale w polu tekstowym nad nią)
FileVersion - Wersja pliku (j.w.)
LegalCopyright - Prawa autorskie (j.w.)
InternalName - Nazwa wewnętrzna
OriginalFilename - Pierwotna nazwa pliku
ProductName - Nazwa produktu
ProductVersion - Wersja produktu
Comments - Komentarze

No to teraz zapisujemy ten plik i zmieniamy rozszerzenie na rc (np. plik.rc). Teraz skorzystamy z narzędzia które znajduje się w katalogu ...DelphiBin o nazwie brcc32.exe. Kopiujesz go do folderu z plikiem plik.rc. Program jest w DOS'ie to trzeba włączyć okienko DOS'a i wejść do tego katalogu. W DOS'ie do folderu przenosimy sie tak:

cd NazwaFolderu

lub:

cd NazwaFolderuDrugiFolder

jeśli chcesz przejść o folder wyżej to stosujesz polecenie:

cd..

a jak już jesteś to wpisujesz polecenie:

brcc32.exe plik.rc

i już mamy plik z rozszeżeniem .res! Gdy włączysz go w Restoratorze to zobaczysz sekcje Wersja. Teraz tylko wystarczy skopiować do ktalogu z źródłem programu i w kodzie delphi pod napisem {$R *.dfm} wpisać {$R plik.res}. Teraz trzeba tylko skopilować i gotowe!

Jak coś to pisz: tomasz_j@hoga.pl!

7 komentarzy

Jak piszesz jakiś artykuł to pisz w Wordzie najlepiej albo zainstaluj sobie Firefox'a bo z pisownią u Ciebie nie najlepiej :P
"Napewno" "przezemnie" "Morzemy" "rozszeżeniem" <ściana>

...To jest kod w asseblerze. ..

Swietny dowcip :D:D:D

Po co się męczyć (Mr. Muscle cię wyręczy) :)

A jeśli potrzebuję w czasie działania programu (runtime) odczytać info o wersji pliku EXE i np. wkleić do komponentu typu TEdit? Przydałaby się podobna procedura.

jak kto woli. jak na mnie jest bez sensu bo moim sposobem moge dać to co mi się podoba i odjąć a tak nie.

hmm.a wybierając MENU/OPTIONS nie łatwiej?? :)

Przedchwilą poprawiłem błędy!