![]() |
Re: Prüfen welche Codecs sind installiert sind???
Sorry, aber ich kann kein C!
|
Re: Prüfen welche Codecs sind installiert sind???
Zitat:
Zitat:
MSDN sagt dazu: Pointer to a BITMAPINFOHEADER structure defining the input format. A compressor handle is not returned unless it supports this format. Dazu musste zwar vermutlichst Erstma das Video öffnen, um an nen Bitmapinfoheader zu kommen, aber dafür biste auf der sicheren Seite. Btw: Warum nicht einfach Video öffnen lassen und wenns net geht, merkt das der User schon und kann DivX dann selber von CD installieren... AcrobatReader installiert sich ja auch nich selbständig, nur weil ich ne PDF runtergeladen hab :mrgreen: Gruß Stephan :dance: :xmas: |
Re: Prüfen welche Codecs sind installiert sind???
Zitat:
|
Re: Prüfen welche Codecs sind installiert sind???
Du schriebst:
Code:
Meinst Du, ich solle es mit Shellexecute versuchen zu öffnen oder meinst du ich soll mir den Header mal durchlesen!?
Dazu musste zwar vermutlichst Erstma das Video öffnen, um an nen Bitmapinfoheader zu kommen, aber dafür biste auf der sicheren Seite.
|
Re: Prüfen welche Codecs sind installiert sind???
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:
(abgeleitet von MSDN-Beispielen, Konstanten aus VfW.pas entnommen)
(*
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.dll' name 'ICInfo'; function ICGetInfo (Handle: THandle; var ICInfo: TICInfo; cb: DWORD): LRESULT; stdcall; external 'msvfw32.dll' name 'ICGetInfo'; function ICClose (Handle: THandle): LRESULT; stdcall; external 'msvfw32.dll' name 'ICClose'; function ICOpen (fccType, fccHandler : DWORD; wMode: UINT): THandle; stdcall; external 'msvfw32.dll' name '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; Gruß Stephan :dance: :xmas: |
Re: Prüfen welche Codecs sind installiert sind???
wow, merci erstmal!
werds mir ansehen und versuchen hinzubekommen! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:43 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