How to

enumerate installed audio/video codecs

Published: 12. February 2012 | Updated: 12. February 2012
License: Microsoft Public License (MS-PL)
Categories: Windows
Tags: C# Media Win32 Windows WMI
Was this snippet helpful for you? YESYES / NONO

Import namespaces

using System;
using System.Collections.Generic;
using System.Management; // requires adding System.Management reference to project

Code

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_CodecFile");
ManagementObjectCollection collection = searcher.Get();

var items = new List<Win32_CodecFile>();
foreach (ManagementObject obj in collection)
{
    var item = new Win32_CodecFile();
    item.AccessMask = (uint?)obj["AccessMask"];
    item.Archive = (bool?)obj["Archive"];
    item.Caption = (string)obj["Caption"];
    item.Compressed = (bool?)obj["Compressed"];
    item.CompressionMethod = (string)obj["CompressionMethod"];
    item.CreationClassName = (string)obj["CreationClassName"];
    item.CreationDate = (string)obj["CreationDate"];
    item.CSCreationClassName = (string)obj["CSCreationClassName"];
    item.CSName = (string)obj["CSName"];
    item.Description = (string)obj["Description"];
    item.Drive = (string)obj["Drive"];
    item.EightDotThreeFileName = (string)obj["EightDotThreeFileName"];
    item.Encrypted = (bool?)obj["Encrypted"];
    item.EncryptionMethod = (string)obj["EncryptionMethod"];
    item.Extension = (string)obj["Extension"];
    item.FileName = (string)obj["FileName"];
    item.FileSize = (ulong?)obj["FileSize"];
    item.FileType = (string)obj["FileType"];
    item.FSCreationClassName = (string)obj["FSCreationClassName"];
    item.FSName = (string)obj["FSName"];
    item.Group = (string)obj["Group"];
    item.Hidden = (bool?)obj["Hidden"];
    item.InstallDate = (string)obj["InstallDate"];
    item.InUseCount = (ulong?)obj["InUseCount"];
    item.LastAccessed = (string)obj["LastAccessed"];
    item.LastModified = (string)obj["LastModified"];
    item.Manufacturer = (string)obj["Manufacturer"];
    item.Name = (string)obj["Name"];
    item.Path = (string)obj["Path"];
    item.Readable = (bool?)obj["Readable"];
    item.Status = (string)obj["Status"];
    item.System = (bool?)obj["System"];
    item.Version = (string)obj["Version"];
    item.Writeable = (bool?)obj["Writeable"];

    items.Add(item);
}

Class

public class Win32_CodecFile
{
    public uint? AccessMask;
    public bool? Archive;
    public string Caption;
    public bool? Compressed;
    public string CompressionMethod;
    public string CreationClassName;
    public string CreationDate;
    public string CSCreationClassName;
    public string CSName;
    public string Description;
    public string Drive;
    public string EightDotThreeFileName;
    public bool? Encrypted;
    public string EncryptionMethod;
    public string Extension;
    public string FileName;
    public ulong? FileSize;
    public string FileType;
    public string FSCreationClassName;
    public string FSName;
    public string Group;
    public bool? Hidden;
    public string InstallDate;
    public ulong? InUseCount;
    public string LastAccessed;
    public string LastModified;
    public string Manufacturer;
    public string Name;
    public string Path;
    public bool? Readable;
    public string Status;
    public bool? System;
    public string Version;
    public bool? Writeable;
}
Send us feedback about this snippet »



Related Snippets: