Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Вниз

Как узнать версию проекта???   Найти похожие ветки 

 
-=[SDA]=- ©   (2004-03-04 08:13) [0]

Здравствуйте! Вопрос в следующем: в /Project Options/ есть вкладка /Version Info/ где указаны различные данные, в том числе и FileVersion, т.е версия программы.... так вот... а как эту версию узнать из программы???, т.е. мне бы хотелось чтобы никто не смог работать с базой при помощи старого exe"шника...
Спасибо за внимание! Заранее благодарен за помощь....


 
Юрий Зотов ©   (2004-03-04 08:18) [1]

Пример из справки:

procedure TForm1.Button1Click(Sender: TObject);
const
 InfoNum = 10;
 InfoStr: array[1..InfoNum] of string = ("CompanyName", "FileDescription", "FileVersion", "InternalName", "LegalCopyright", "LegalTradeMarks", "OriginalFileName", "ProductName", "ProductVersion", "Comments");
var
 S: string;
 n, Len, i: DWORD;
 Buf: PChar;
 Value: PChar;
begin
 S := Application.ExeName;
 n := GetFileVersionInfoSize(PChar(S), n);
 if n > 0 then
 begin

   Buf := AllocMem(n);
   Memo1.Lines.Add("VersionInfoSize = " + IntToStr(n));
   GetFileVersionInfo(PChar(S), 0, n, Buf);
   for i := 1 to InfoNum do
     if VerQueryValue(Buf, PChar("StringFileInfo\040904E4\" + InfoStr[i]), Pointer(Value), Len) then
       Memo1.Lines.Add(InfoStr[i] + " = " + Value);
   FreeMem(Buf, n);
 end
 else
   Memo1.Lines.Add("No version information found");
end;


 
-=[SDA]=- ©   (2004-03-04 08:25) [2]

Спасибо, Юрий, буду пробовать.... :)


 
Юрий Зотов ©   (2004-03-04 08:31) [3]

> мне бы хотелось чтобы никто не смог работать с базой при
> помощи старого exe"шника...

Видимо, это все же не совсем та задача?
:о)


 
Романов Р.В. ©   (2004-03-04 08:51) [4]


> мне бы хотелось чтобы никто не смог работать с базой при
> помощи старого exe"шника...

Измени формат базы


 
-=[SDA]=- ©   (2004-03-04 09:55) [5]

>Измени формат базы
Неее... 42 таблицы!!! в каждой мин.5 полей...
База данных телеф. АТС + вся экономика.... лучше буду проверять версию файла, чем каждый раз менять названия полей...
Кстати, в проге примерно 50-80 модулей и 80-100 форм, отчетов и т.д... в половину из них я даже не заглядывал, т.к. прогу не я начинал писать.... так что это гемор...вот.... но все равно спасибо за совет


 
Романов Р.В. ©   (2004-03-04 11:07) [6]

Переименуй 1 основное поле и в базе и в исходниках (Замени 1 букву). Старый экзэшник не сможет работать с этой таблицей.


 
evvcom   (2004-03-04 11:47) [7]

А база на чем? (dbf, db, sql, ...)


 
mip ©   (2004-03-04 15:43) [8]

я делаю так:

function TFMain.FileVersion(AFileName:string): string;
var
 szName: array[0..255] of Char;
 P: Pointer;
 Value: Pointer;
 Len: UINT;
 GetTranslationString:string;
 FFileName: PChar;
 FValid:boolean;
 FSize: DWORD;
 FHandle: DWORD;
 FBuffer: PChar;
begin
 try
   FFileName := StrPCopy(StrAlloc(Length(AFileName) + 1), AFileName);
   FValid := False;
   FSize := GetFileVersionInfoSize(FFileName, FHandle);
   if FSize > 0 then
     try
       GetMem(FBuffer, FSize);
       FValid := GetFileVersionInfo(FFileName, FHandle, FSize, FBuffer);
     except
       FValid := False;
       raise;
     end;
   Result := "";
   if FValid then
     VerQueryValue(FBuffer, "\VarFileInfo\Translation", p, Len)
   else p := nil;
   if P <> nil then
     GetTranslationString := IntToHex(MakeLong(HiWord(Longint(P^)), LoWord(Longint(P^))), 8);
   if FValid then
     begin
       StrPCopy(szName, "\StringFileInfo\" + GetTranslationString + "\FileVersion");
       if VerQueryValue(FBuffer, szName, Value, Len) then
         Result := StrPas(PChar(Value));
     end;
 finally
   try
     if FBuffer <> nil then FreeMem(FBuffer, FSize);
   except
   end;
   try
     StrDispose(FFileName);
   except
   end;
 end;
end;



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.028 c
9-1068621377
Леприкон
2003-11-12 10:16
2004.05.02
Поверхность вращения


6-1078079621
teapot
2004-02-29 21:33
2004.05.02
pacet32.dll блокировать доступ


4-1078857378
Tofig Gasanov
2004-03-09 21:36
2004.05.02
Нестандартные окна..


1-1081688743
IrQX
2004-04-11 17:05
2004.05.02
Почему не устанавливается компонент?


14-1081738088
konstantinov
2004-04-12 06:48
2004.05.02
Опять о выборе ПК





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский