Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.07.2013, 13:29   #1
Amilman
Пользователь
 
Регистрация: 19.12.2012
Сообщений: 49
Вопрос Как узнать версию уже скомпилированного exe

Все доброго времени суток.
А вопрос у меня такой как из моей программы узнать версию другой программы?
Amilman вне форума Ответить с цитированием
Старый 25.07.2013, 13:59   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

http://delphiworld.narod.ru/base/version_info.html
Там только путь к файлу подставь и попробуй.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.07.2013, 05:26   #3
Amilman
Пользователь
 
Регистрация: 19.12.2012
Сообщений: 49
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
http://delphiworld.narod.ru/base/version_info.html
Там только путь к файлу подставь и попробуй.
Можете её расписать, если не трудно?
Amilman вне форума Ответить с цитированием
Старый 26.07.2013, 09:20   #4
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

я пользуюсь короткой версией:
Код:
function GetFileVersion(FileName: string; var VerInfo : TVSFixedFileInfo): boolean;
var
  InfoSize, puLen: DWORD;
  Pt, InfoPtr: Pointer;
begin
  InfoSize := GetFileVersionInfoSize( PChar(FileName), puLen );
  FillChar(VerInfo, SizeOf(TVSFixedFileInfo), 0);
  if InfoSize > 0 then
  begin
    GetMem(Pt,InfoSize);
    GetFileVersionInfo( PChar(FileName), 0, InfoSize, Pt);
    VerQueryValue(Pt,'\',InfoPtr,puLen);
    Move(InfoPtr^, VerInfo, sizeof(TVSFixedFileInfo) );
    FreeMem(Pt);
    Result := True;
  end
  else
    Result := False;
end;

function ShowVersion(FileName:string):string;
var
  VerInfo : TVSFixedFileInfo;
begin
  if GetFileVersion(FileName, VerInfo) then
    Result:=Format('%u.%u.%u.%u',[HiWord(VerInfo.dwProductVersionMS), LoWord(VerInfo.dwProductVersionMS),
      HiWord(VerInfo.dwProductVersionLS), LoWord(VerInfo.dwProductVersionLS)])
  else
    Result:='------';
end;
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 26.07.2013, 10:38   #5
Amilman
Пользователь
 
Регистрация: 19.12.2012
Сообщений: 49
По умолчанию

Для просмотра использую "Button1.Caption:=ShowVersion(Param str(0));"
А сюда нужно вписатьпуть до программы? VerQueryValue(Pt,'\',InfoPtr,puLen) ;
Если это так то вместо версии выдает набор цифр не относящихся к программе.
Amilman вне форума Ответить с цитированием
Старый 26.07.2013, 10:43   #6
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

а
Код:
ShowVersion(Application.ExeName);
?
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 26.07.2013, 10:47   #7
Amilman
Пользователь
 
Регистрация: 19.12.2012
Сообщений: 49
По умолчанию

Цитата:
Сообщение от Yurk@ Посмотреть сообщение
а
Код:
ShowVersion(Application.ExeName);
?
Все также примерно получается что он пишет "3854.4568.1234.5678"
Amilman вне форума Ответить с цитированием
Старый 26.07.2013, 10:55   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Все также примерно получается что он пишет "3854.4568.1234.5678"
Ну и правильно все. Это версия вашего EXE. Версия записана в ресурсах VersionInfo.
Человек_Борща вне форума Ответить с цитированием
Старый 26.07.2013, 11:02   #9
Amilman
Пользователь
 
Регистрация: 19.12.2012
Сообщений: 49
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Ну и правильно все. Это версия вашего EXE. Версия записана в ресурсах VersionInfo.
Но я у другой программы в Delphi сам прописал версию 1.0.0.1 Как тогда узнать именно эту версию?
Amilman вне форума Ответить с цитированием
Старый 26.07.2013, 12:56   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Но я у другой программы в Delphi сам прописал версию 1.0.0.1 Как тогда узнать именно эту версию?
А то, что Вам предложили, разве не её читает?
В проводнике Wndows прав.кнопкой мышки на файле, свойства, версия - там что написано?
Если не то, что Вы прописали, тогда Вам прочитать её оттуда, куда Вы её прописали!
Или пропишите туда, куда нужно, или показывайте, куда Вы её записали...
Изображения
Тип файла: jpg VersionInfo.jpg (75.2 Кб, 232 просмотров)

Последний раз редактировалось Serge_Bliznykov; 26.07.2013 в 13:18.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как можно создать триал версию уже готовых программ? Aqil_f Общие вопросы Delphi 8 27.06.2016 01:14
Как узнать дату и версию Bios? Exitm Помощь студентам 14 05.05.2012 23:27
Необходимо извлечь .exe из ресурсов .exe скомпилированного с delphi xe. bagabuga Общие вопросы Delphi 2 25.02.2012 21:10
Как узнать версию сервера? Vit@L БД в Delphi 2 04.11.2011 16:54
Как узнать версию браузера FlooPy PHP 3 24.11.2007 23:25