![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как узнать имя компании создавшей фаил [D6, WinXP]
ctranik © (2005-08-26 22:04:00)Всем привет
Подскажите пожалуйсто как Windows получает из любого файла
информацию типа "ИМЯ КОМПАНИИ"( при условие что фаил содержит такого рода информацию)
И всё это я так понимаю происходит при помощи API- функции.
Но вот каких ???
Турист (2005-08-28 19:03:00) [1]от Турист (28.08.05 18:28) [6]
>Турист (28.08.05 18:35) [7]
Твой выбор
Турист (2005-08-28 18:35:00) [2]Не делай так - совесть замучит
В зеркало смотреть.
До самого, такска-ать, просветления.
Турист (2005-08-28 18:28:00) [3]от Турист (26.08.05 22:37) [2]
>Турист (27.08.05 18:05) [4]
Не делай так - совесть замучит
psa247 (2005-08-27 18:39:00) [4]А на кой оно тебе?
Жми CTRL + SHIFT + F12 -> припиши своей будущей проге -
company name: MICROSOFT+
Турист (2005-08-27 18:05:00) [5]>ctranik (27.08.05 18:02) [3]
Всегда пожалуйста.
Предоставлю любые ответы на любые вопросы.
ctranik (2005-08-27 18:02:00) [6]
> Турист
Благодарствую,хотя пока не очень вник в код.
если вдруг до чего-то недодукаюсь , будет возможность обратится за разьяснениями ???
Турист (2005-08-26 22:37:00) [7]>ctranik (26.08.05 22:04)
function VerTranslation(VerInfo : Pointer): string;
var
P : Pointer;
L : DWord;
begin
if VerQueryValue(VerInfo, '\VarFileInfo\Translation', P, L) then
Result := IntToHex(MakeLong(HiWord(Longint(P^)), LoWord(Longint(P^))), 8)
else
Result := '040904E4'
end;
function VerValue(VerInfo : Pointer; const Name: string): string;
var
Value : Pointer;
Len : DWord;
begin
if VerQueryValue(VerInfo, PChar('\StringFileInfo\' +
VerTranslation(VerInfo) + '\' + Name), Value, Len) then
Result := StrPas(Value)
else
Result := '';
end;
function ProductVersionParam(const aFileName, aParamName : string) : string;
var
Handle : THandle;
dwSize : DWord;
Buffer : Pointer;
begin
Result := '';
dwSize := GetFileVersionInfoSize(PChar(aFileName), Handle);
if dwSize > 0 then begin
Buffer := AllocMem(dwSize);
if Buffer <> NIL then try
if GetFileVersionInfo(PChar(aFileName), Handle, dwSize, Buffer) then
Result := VerValue(Buffer, aParamName)
finally
FreeMem(Buffer)
end
end
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ShowMessage(ProductVersionParam(ParamStr(0), 'CompanyName'))
end;
kami (2005-08-26 22:29:00) [8]GetFileVersionInfo - see MSDN
+ посмотреть исходники tvfileinfo с http://www.torry.net