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

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

Проверка на наличие кодека [D5, D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]


Dimbas ©   (2004-04-12 16:02:00) 

Мастера подскажите плиз как сделать чтобы программа проверяла установлен ли Divx, если нет то сама устанавливала его...


ЮЮ   (2004-04-14 06:33:00) [1]

const
 NOT_INSTALL: string = 'Необходимое программное обеспечение не установлено';
 NOT_FOUND: string = 'Необходимое программное обеспечение не найдено';

function GetInfo(GUID: string): string;
 //возвращает версию продукта или NOT_INSTALL или NOT_FOUND
const
 pv: string =
   'P'#0'r'#0'o'#0'd'#0'u'#0'c'#0't'#0'V'#0'e'#0'r'#0's'#0'i'#0'o'#0'n'#0;
var
 buff: string;
 c: cardinal;
 fn: string;
 i: integer;
 l: integer;
 reg: TRegistry;
begin
 reg := TRegistry.Create(KEY_READ);
 try
   reg.RootKey := HKEY_CLASSES_ROOT;
   if
     Reg.OpenKey(
       '\CLSID\' + GUID + '\InprocServer32', false
     )
   then begin
     fn := reg.ReadString('');
     if fn <> '' then begin
       l := GetFileVersionInfoSize(PChar(fn), c);
       SetLength(buff, l);
       GetFileVersionInfo(PChar(fn), c, l, @buff[1]);
       Result := '';
       i := Pos(PV, buff) + length(PV);
       l := 1;
       while buff[i + l*2] > #0 do begin
         Result := Result + buff[i + l*2];
         inc(l);
       end;
       Result := AnsiReplaceText(Result, ',', '.');
       Result := AnsiReplaceText(Result, ' ', '');
     end
     else
       Result := NOT_FOUND;
   end
   else
     Result := NOT_INSTALL;
 finally
   reg.Free;
 end;
end;

для DivX:
 GetInfo('{78766964-0000-0010-8000-00AA00389B71}');
для MPEG Layer-3:
 GetInfo('{38BE3000-DBF4-11D0-860E-00A024CFEF6D}');


CAHEK   (2004-04-14 00:23:00) [2]

На сколько я помню,DivX кудато в папку Вннды качается,следовательно узнайте этот путь и опред. его через Fileexists();


Наверх

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