Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение наличия кодека 
:(
    Опции темы
Black_Joker
Дата 8.7.2005, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 9.11.2002
Где: Таганрог

Репутация: нет
Всего: нет



Подскажите, пожалуйста, как можно определить установлен ли некоторый кодек в системе или нет
smile
PM   Вверх
Rennigth
Дата 8.7.2005, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: нет
Всего: 76



здесь посмотри:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Black_Joker
Дата 8.7.2005, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 9.11.2002
Где: Таганрог

Репутация: нет
Всего: нет



А как это сделать программно?
smile smile smile

Это сообщение отредактировал(а) Black_Joker - 8.7.2005, 18:36
PM   Вверх
Black_Joker
Дата 30.7.2005, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 9.11.2002
Где: Таганрог

Репутация: нет
Всего: нет



Посмотрел
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc

не понял...
Где еще в реестре можно поискать "наличие кодека"
PM   Вверх
Girder
Дата 31.7.2005, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: 2
Всего: 155



Код
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
 PACMFORMATDETAILSA=^_ACMFORMATDETAILSA;
 _ACMFORMATDETAILSA=packed record
  cbStruct:DWord;
  dwFormatIndex:DWord;
  dwFormatTag:DWord;
  fdwSupport:DWord;
  pwfx:Pointer;
  cbwfx:DWord;
  szFormat:array [1..128] of Char;
 end;
 PACMFORMATTAGDETAILSA=^_ACMFORMATTAGDETAILSA;
 _ACMFORMATTAGDETAILSA=packed record
  cbStruct:DWord;
  dwFormatTagIndex:DWord;
  dwFormatTag:DWord;
  cbFormatSize:DWord;
  fdwSupport:DWord;
  cStandardFormats:DWord;
  szFormatTag:array [1..48] of Char;
 end;
 _ACMDRIVERDETAILSA=packed record
  cbStruct:DWord;
  fccType:DWord;
  fccComp:DWord;
  wMid:Word;
  wPid:Word;
  vdwACM:DWord;
  vdwDriver:DWord;
  fdwSupport:DWord;
  cFormatTags:DWord;
  cFilterTags:DWord;
  hicon:HIcon;
  szShortName:array [1..32] of Char;
  szLongName:array [1..128] of Char;
  szCopyright:array [1..80] of Char;
  szLicensing:array [1..128] of Char;
  szFeatures:array [1..512] of Char;
 end;
 PICInfo=^TICInfo;
 TICInfo=packed record
  dwSize:DWord;
    fccType:DWord;
    fccHandler:DWord;
    dwFlags:DWord;
    dwVersion:DWord;
    dwVersionICM:DWord;
    szName:array [1..16] of WideChar;
    szDescription: array [1..128] of WideChar;
    szDriver: array [1..128] of WideChar;
 end;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  mSize:DWord;
  function acmDriverEnum(fnCallback:Pointer; dwInstance:DWord; fdwEnum:DWord):DWord; stdcall; external 'Msacm32.dll';
  function acmDriverOpen(var phad:DWord; hadid:DWord; fdwOpen:DWord):DWord; stdcall; external 'Msacm32.dll';
  function acmDriverClose(had:DWord; fdwClose:DWord):DWord; stdcall; external 'Msacm32.dll';
  function acmMetrics(hao:DWord; uMetric:DWord; pMetric: Pointer):DWord; stdcall; external 'Msacm32.dll';
  function acmFormatEnumA(had:DWord; pafd:PACMFORMATDETAILSA; fnCallback:Pointer; dwInstance:DWord; fdwEnum:DWord):DWord; stdcall; external 'Msacm32.dll';
  function acmDriverDetailsA(hadid:DWord; var padd:_ACMDRIVERDETAILSA; fdwDetails:DWord):DWord; stdcall; external 'Msacm32.dll';
  function acmFormatTagEnumA(had:DWord; paftd:PACMFORMATTAGDETAILSA; fnCallback:Pointer; dwInstance:DWord; fdwEnum:DWord):DWord; stdcall; external 'Msacm32.dll';
  function ICInfo(fccType:DWord; fccHandler:DWord; lpicinfo:PICInfo): BOOL; stdcall; external 'MSVFW32.DLL';
  function ICOpen(fccType:DWord; fccHandler:DWord; wMode:Word):DWord; stdcall; external 'MSVFW32.DLL';
  function ICGetInfo(hic:DWord; lpicinfo:PICInfo; cb:DWord):DWord; stdcall; external 'MSVFW32.DLL';
  function ICClose(hic:DWord):DWord; stdcall; external 'MSVFW32.DLL';

implementation

{$R *.dfm}

const
 ACM_DRIVERENUMF_DISABLED=$80000000;
 ACM_DRIVERENUMF_NOLOCAL=$40000000;
 ACM_METRIC_MAX_SIZE_FORMAT=50;
 ICMODE_QUERY=4;

function acmFormatEnumCallback(hadid:DWord; var pafd:_ACMFORMATDETAILSA; dwInstance:DWord; fdwSupport:DWord):Bool; stdcall;
begin
 if dwInstance=pafd.dwFormatTag then
  Form1.Memo1.Lines.Add(pafd.szFormat);
 Result:=true;
end; 

function acmFormatTagEnumCallback(hadid:DWord; var paftd:_ACMFORMATTAGDETAILSA; dwInstance:DWord; fdwSupport:DWord):Bool; stdcall;
var FD:_ACMFORMATDETAILSA;
    buf:PChar;
begin
 Form1.Memo1.Lines.Add(' - Формат:');
 Form1.Memo1.Lines.Add(paftd.szFormatTag);
 FillChar(FD,SizeOf(FD),#0);
 FD.cbStruct:=SizeOf(_ACMFORMATDETAILSA);
 GetMem(buf,mSize);
 FD.pwfx:=Buf;
 FD.cbwfx:=mSize;
 Form1.Memo1.Lines.Add(' -- Атрибуты:');
 acmFormatEnumA(dwInstance,@FD,@acmFormatEnumCallback,paftd.dwFormatTag,0);
 FreeMem(buf,mSize);
 Result:=true;
end;

function acmDriverEnumCallback(hadid:DWord; dwInstance:DWord; fdwSupport:DWord):Bool; stdcall;
var DD:_ACMDRIVERDETAILSA;
    FTD:_ACMFORMATTAGDETAILSA;
    had:DWord;
begin
 Result:=true;
 DD.cbStruct:=SizeOf(DD);
 Form1.Memo1.Lines.Add('Кодек:');
 if acmDriverDetailsA(hadid,DD,0)=0 then
  Form1.Memo1.Lines.Add(DD.szLongName);
 if acmDriverOpen(had,hadid,0)<>0 then exit;
 if acmMetrics(had,ACM_METRIC_MAX_SIZE_FORMAT,@mSize)=0 then
  begin
   FillChar(FTD,SizeOf(FTD),#0);
   FTD.cbStruct:=SizeOf(_ACMFORMATTAGDETAILSA);
   acmFormatTagEnumA(had,@FTD,@acmFormatTagEnumCallback,had,0);
  end;
 acmDriverClose(had,0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Memo1.Clear;
 Memo1.Lines.Add('############-Звук-############');
 acmDriverEnum(@acmDriverEnumCallback,0,ACM_DRIVERENUMF_DISABLED);
end;

procedure TForm1.Button2Click(Sender: TObject);
var i:Integer;
    Info:TICInfo;
    ic:DWord;
begin
 Memo1.Clear;
 Memo1.Lines.Add('############-Видео-############');
 i:=0;
 Info.dwSize:=SizeOf(Info);
 while ICInfo(0,i,@Info) do
  begin
   ic:=ICOpen(Info.fccType,Info.fccHandler,ICMODE_QUERY);
   ICGetInfo(ic,@Info,SizeOf(TICInfo));
   ICClose(ic);
   Memo1.Lines.Add(Info.szDescription);
   Inc(i);
  end;
end;

end.



--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
klimuc
Дата 24.1.2008, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 24.1.2008

Репутация: нет
Всего: нет



Bink 32 Video очень надо
 smile 
PM MAIL   Вверх
Smailik
Дата 20.12.2008, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 8.5.2006

Репутация: нет
Всего: нет



незнаю, открывать ли новую тему %)
есть ли способ программно, тихо и молча, установить набор популярных кодеков (выборочно) если их нет в системе или имеются их старые версии?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0760 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.