Directshow: Registrierte Filter auslesen

  • Hallo zusammen,

    ich möchte alle im System registrierten Filter zunächst einmal auslesen.

    Im englischen Forum hab ich dazu dieses Skript gefunden:
    http://www.autoitscript.com/forum/topic/64…page__p__872817

    Die Freude war aber schnell vorbei :(
    Ohne _AutoItObject Kenntnisse ist das ja völlig unlesbar. :wacko:

    Könnte mir vielleicht jemand kurz erklären was wo passiert?
    Interessant ist eigentlich nur der Teil bei dem die directshow Filter ermittelt werden.

    Ich vermute mal dabei wird ein COM-Objekt von windows verwendet (welches?)? Oder die Registrierung ausgelesen (welche Schlüssel?)?
    Leider konnte ich dies dem Skript nicht entnehmen, was nach einigen Jahren autoit Erfahrung ziemlich deprimierend ist :(


    Gruß nuts

    Einmal editiert, zuletzt von nuts (20. Mai 2011 um 22:58)

  • Ich hab mal Informationen aus dem Netz zu dem Thema zusammengetragen.

    1. So findet man die registrierten direcshow Filter: http://msdn.microsoft.com/en-us/library/…v=vs.85%29.aspx

    Pseudocode:

    Code
    Enum Regread => HKEY_CLASSES_ROOT\CLSID\{DA4E3DA0-D07D-11d0-BD50-00A0C911CE86}\Instance\
    
    
    suche: Regkey Friendlyname ="Directshow" 
    => so bekommt man die directshow CLSID 
    
    
    Enum Regread => HKEY_CLASSES_ROOT\CLSID\ "directshow CLSID"
    => Liste mit allen registrierten Filtern

    2. Interpretieren der für die jeweiligen Filter hinterlegten Daten (jetzt wirds richtig blöd)
    Man findet dort einen Key "Filterdata" mit Binärdaten:
    http://blog.monogram.sk/janos/2008/02/…istry-database/

    Im weiteren Schritt (wenn man sich die subtypes für die mediaformate gegoggelt hat) kann man jetzt die Filter nach Mediadateien auflisten, Merits setzen usw.
    Registrieren bzw. wieder entfernen: http://msdn.microsoft.com/en-us/library/ms924596.aspx
    Über die Regsrv32.exe geht das relativ einfach.

    Alles in allem kein Thema für freitagabends :whistling:
    Ich schau nun einen Film und hoffe die Filter funktionieren auch ohne eigenen Filtermanager einwandfrei. :D

    P.S. Ich hab den Thread mal auf gelöst gesetzt. Sollte jemand schon fertige Funktionen oder sonstige Tipps und Tricks auf Lager haben würde ich mich darüber aber trotzdem sehr freuen.