Как получить версии файлов (exe и dll), которые включены в exno установочный файл inno setup?
Как в теме, возможно ли это? И я хочу отобразить их на одной странице установщика, если для параметра (например, параметр передан в исполняемый файл) установлено значение true.
Я знаю, как отобразить какую-то страницу:
if dev then
PageWersjePlikow :=
CreateOutputMsgMemoPage(
1, 'Wersje plików zawarte w instalatorze',
'Lista plików niewidoczna dla klienta',
'Pliki:', 'TU WPISAĆ WERSJE PLIKÓW');
У меня есть некоторые идеи, но каждая идея основана на файле.txt, который создается при компиляции exe-установщика, а затем читается из него...
2 ответа
Использование GetVersionNumbers
или же GetVersionNumbersString
вспомогательные функции.
GetVersionNumbersString
возвращает версию в формате Major.Minor.Rev.Build
,
Если вам нужен другой формат, вам нужно использовать GetVersionNumbers
и отформатируйте компоненты версии так, как вам нужно (например, Major.Minor.Rev
):
function MyGetVersionNumbersString(const Filename: String; var Version: String): Boolean;
var
MS, LS: Cardinal;
Major, Minor, Rev, Build: Cardinal;
begin
Result := GetVersionNumbers(Filename, MS, LS);
if Result then
begin
Major := MS shr 16;
Minor := MS and $FFFF;
Rev := LS shr 16;
Build := LS and $FFFF;
Version := Format('%d.%d.%d', [Major, Minor, Rev]);
end
end;
Спасибо! Я нашел решение для проверки параметра cmd:
function GetParam: Boolean;
var
param: string;
i: integer;
begin
Result := False;
for i:= 0 to ParamCount do
begin
param := ParamStr(i);
if (param = '-p') then
begin
Result := True;
break;
end;
end;
end;
С моей функцией я могу просто запустить мой установщик с параметром -p, и он покажет мою страницу, содержащую информацию, которую я хочу:-)