Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить версию приложения


Страницы:   1 2 3

neveGreen ©   (2008-12-15 15:30:00) 

Как получить версию приложения которое исполняется и версию exe файла и сравнить их потом? Применяется для обновления программы.


neveGreen   (2008-12-15 17:21:00) [21]


> Palladin ©   (15.12.08 17:18) [20]

Дак я передаю в нее Simple= True и сравниваю результаты, тоесть строки в формате x.x.x.x - или Вы знаете проще способ?


Palladin   (2008-12-15 17:18:00) [22]

Зачем тебе строки сравнивать? Сравнивай значения версий. Я функцию для примера привел, как получить информации о версии.


neveGreen   (2008-12-15 17:10:00) [23]

Благодарю. А еще такой ворос - фактически функция сравнения может сравнить на ">" две полученных строки - строки версии текущего приложения и строки версии другого exe файла.

function VersionCompire(NewVersion, CurrVersion: String): Boolean;
begin
 if NewVersion > CurrVersion then
   Result := True
 else
   Result := False;
end;


Palladin   (2008-12-15 16:34:00) [24]

PChar(s) - имя фала
l - не значит ничего, просто заглушка, но по задумке MS там должно быть значение полученное при GetFileVersionInfoSize
nSize - размер блока данных версии, полученный GetFileVersionInfoSize
buf - указатель по которому нужно расположить данные версии


> VerQueryValue не могу найти в хелпе

эти функции принадлежат Window SDK, в соответствующей справке и ищи


clickmaker   (2008-12-15 16:32:00) [25]

они в Win32 SDK reference


neveGreen   (2008-12-15 16:29:00) [26]


> какой конкретно вопрос?

Объясните пожалуйста параметры функций
GetFileVersionInfo(PChar(S),l,nSize,Buf)  и
VerQueryValue не могу найти в хелпе


Palladin   (2008-12-15 16:25:00) [27]


> neveGreen   (15.12.08 16:12) [13]

какой конкретно вопрос?


> Palladin забыл,  что  функция может вернуть нулевое значение

есть такое дело, только не забыл, а просто не стал проверять... обращаясь к функции, я всегда знаю, что информация о версии есть... хотя по хорошему, конечно надо... да и одна переменная, в принципе, лишняя..


tesseract   (2008-12-15 16:15:00) [28]


> Вы вкратце объяснить алгоритм работы с памятью в этом примере.


Смотрим GetFileVersionInfoSize - выделяем сколько она вернула, запускаем функцию, получаем данные, свобождаем буфер. Palladin забыл,  что  функция может вернуть нулевое значение и не проводит сравнение с нулем nSize. Всё.


neveGreen   (2008-12-15 16:12:00) [29]


> Palladin ©   (15.12.08 16:02) [9]

точно не записано...
Большое спасибо, а не могли бы Вы вкратце объяснить алгоритм работы с памятью в этом примере.


Anatoly Podgoretsky   (2008-12-15 16:10:00) [30]


> какая то ошибка при работе с version.dll

Странная у тебя система, и ругается больно зверски.


Anatoly Podgoretsky   (2008-12-15 16:10:00) [31]


> какая то ошибка при работе с version.dll

Странная у тебя система, и ругается больно зверски.


Сергей М.   (2008-12-15 16:03:00) [32]


> какая то ошибка при работе с version.dll
>


Т.е. ты вызвал эту функцию и вместа ожидаемого результата увидел сообщение, дословнозвучащее как "какая то ошибка при работе с version.dll", так ?


Palladin   (2008-12-15 16:02:00) [33]

"какая то ошибка при работе с version.dll" может говорить лишь о том, что в ресурсах данных о версии не содержится.


neveGreen   (2008-12-15 16:02:00) [34]

в строке l1 := vi.dwFileVersionMS;


neveGreen   (2008-12-15 16:00:00) [35]


> neveGreen   (15.12.08 15:56) [4]

какая то ошибка при работе с version.dll


neveGreen   (2008-12-15 15:59:00) [36]


> KilkennyCat ©   (15.12.08 15:51) [3]

Да, я имею ввиду текущей программой сравнить ее же обновление в другом каталоге, если версия в каталоге больше то текущую поменять. Надо определить текущую работающую версию "из нутри" и определить версию другого файла.


Palladin   (2008-12-15 15:58:00) [37]


> neveGreen   (15.12.08 15:56) [4]

ну прям как приговор, у меня уж три года как работает, а тут пришел индивидуум, приговорил, и даже, наверно в ФСБ работает, суть ошибки не раскрыл... от ведь... поколение секретов


neveGreen   (2008-12-15 15:56:00) [38]


> Palladin ©   (15.12.08 15:35) [1]

не работает


KilkennyCat   (2008-12-15 15:51:00) [39]


> tesseract ©

вероятно, автор имеет ввиду данные текущего ехешника и нового.


tesseract   (2008-12-15 15:36:00) [40]


> Как получить версию приложения которое исполняется и версию
> exe файла


А это не одно и тоже случаем ?  смотри GetFileVersionInfo + VS_VERSIONINFO


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо