Форум программистов, компьютерный форум, киберфорум
ivan.-94
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

Получить версию любого .exe файла

Запись от ivan.-94 размещена 04.09.2013 в 23:35
Показов 2291 Комментарии 0

Цитата Сообщение от Alexell Посмотреть сообщение
Привет всем.
Давно уже видел в интернете много вопросов на эту тему, поэтому когда мне понадобилось получать версию любого exe файла,
я нашел большой код, подогнал его под себя и решил дать вам в виде функции, пользуйтесь:

1. В Unit1.h в разделе public вставляете:
C++
1
AnsiString __fastcall GetVer(AnsiString FileName);
2. В Unit1.cpp пишем функцию:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
AnsiString __fastcall TMainForm::GetVer(AnsiString FileName)
{
        AnsiString Version;
        DWORD h;
        DWORD Size = GetFileVersionInfoSize(FileName.c_str(), &h);
        if(Size == 0)
        {
                Version = "íåèçâåñòíî";
                return Version;
        }
        char *buf;
        buf = (char *)GlobalAlloc(GMEM_FIXED, Size);
        if(GetFileVersionInfo(FileName.c_str(), h, Size, buf)!=0)
        {
                char *ValueBuf; UINT Len; VerQueryValue(buf, "\\VarFileInfo\\Translation", &(void *)ValueBuf,&Len);
                if(Len>=4)
                {
                        AnsiString CharSet=IntToHex((int )MAKELONG(*(int *)(ValueBuf + 2), *(int *)ValueBuf), 8);
                        if(VerQueryValue(buf, AnsiString("\\StringFileInfo\\"+CharSet+"\\FileVersion").c_str(), &(void *)ValueBuf, &Len) != 0)
                                Version = ValueBuf;
                }
        }
GlobalFree(buf);
return Version;
}
3. Входным параметром является имя exe файла, если он в папке с вашим приложением. В противном случае указываем полный путь, где вместо одного обратного слэша "\"пишем 2 "\\":
C++
1
Label1->Caption=GetVer("proga.exe");
Получить версию любого .exe файла
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru