AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Prüfen welche Codecs sind installiert sind???
Thema durchsuchen
Ansicht
Themen-Optionen

Prüfen welche Codecs sind installiert sind???

Offene Frage von "torud"
Ein Thema von torud · begonnen am 26. Nov 2004 · letzter Beitrag vom 26. Nov 2004
 
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#15

Re: Prüfen welche Codecs sind installiert sind???

  Alt 26. Nov 2004, 14:15
Hi,

nein das hab ich nicht gemeint -g- Aber ich hab noch ne andere, imho noch einfachere Möglichkeit gefunden, die Codecs aufzulisten. Bisschen umschreiben und schon bekommste raus, ob der gesuchte Codec installiert ist:

Delphi-Quellcode:
(*
Benötigte Konstanten
--------------------
(hier werden als Beispiel ICMODE_FASTDECOMPRESS und ICTYPE_VIDEO benutzt)
*)

CONST
  ICMODE_COMPRESS = 1;
  ICMODE_DECOMPRESS = 2;
  ICMODE_FASTDECOMPRESS = 3;
  ICMODE_QUERY = 4;
  ICMODE_FASTCOMPRESS = 5;
  ICMODE_DRAW = 8;

  ICTYPE_VIDEO = ord ('v') +
                 ord ('i') shl 8 +
                 ord ('d') shl 16 +
                 ord ('c') shl 24;

(*
Benötigte Typen
----------------
*)

TYPE
  TICInfo = packed record
  // enthält Informationen über De/Compressor
    dwSize,
    fccType,
    fccHandler,
    dwFlags,
    dwVersio,
    dwVersionICM : DWORD;
    szName : array [0..15] of wchar;
    szDescription : array [0..127] of wchar;
    szDriver : array [0..127] of wchar;
  end;

(*
Benötigte Funktionen
--------------------
*)

  function ICInfo (fccType, fccHandler : DWORD; var ICInfo: TICInfo): BOOL;
  stdcall; external 'msvfw32.dllname 'ICInfo';

  function ICGetInfo (Handle: THandle; var ICInfo: TICInfo; cb: DWORD): LRESULT;
  stdcall; external 'msvfw32.dllname 'ICGetInfo';

  function ICClose (Handle: THandle): LRESULT;
  stdcall; external 'msvfw32.dllname 'ICClose';

  function ICOpen (fccType, fccHandler : DWORD; wMode: UINT): THandle;
  stdcall; external 'msvfw32.dllname 'ICOpen';

...

IMPLEMENTATION
...


PROCEDURE EnumerateVideoCodecs(aStrings : TStrings);
// Alle gefundenen Video-Codecs, die den Kriterien
// (hier: ICMODE_FASTDECOMPRESS =
// "Decompressor will perform fast (real-time) decompression")
// entsprechen, werden an aStrings angehängt.
VAR
  i : integer;
  info : TICInfo;
  hic : THandle;
begin
  i:=0;
  WHILE ICInfo(ICTYPE_VIDEO, i, info) DO
  BEGIN
    Hic := ICOpen(ICTYPE_VIDEO, i, ICMODE_FASTDECOMPRESS);
    IF Hic<>0 THEN
    BEGIN
      IF ICGetInfo(hic,info,SizeOf(info)) <> 0 THEN
      aStrings.Add(info.szName + ' (' + info.szDescription + ', ' + info.szDriver+ ')');
      ICClose(Hic);
    END;
    inc(i);
  END;
END;


{ ******************************* }

//edit: Beispielaufruf
procedure TForm1.FormCreate(Sender: TObject);
begin
  EnumerateVideoCodecs(Memo1.Lines);
end;
(abgeleitet von MSDN-Beispielen, Konstanten aus VfW.pas entnommen)


Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz