Normalerweise müsstest du das ganze über die Windowsregistry ganz einfach machen können. Unter dem Ordner "#HKEY_CLASSES_ROOT" guckst du im Ordner ".mp3" nach, in welchem Ordner die Informationen zu dieser Dateiendung stehen. Der Ordnername steht unter dem Wert "Default" (bei mir isses grad "Winamp.File"

) Unter "#HKEY_CLASSES_ROOT" gibt es dann einen Ordner der bei mir "Winamp.File" heißt. Das heißt, dass in diesem Ordner die Informationen für die Endung ".mp3" drin liegen. In diesem Ordner steht unter "Default" dann der Name für diese Endung. Doch das war ja nicht deine Frage
Ganz sicher bin ich mir jetzt beim folgenden nicht, aber so dürfte es sein:
Unter dem Ordner, bei mir "Winamp.file", gibt es einen Unterordner "Shell", der einen Unterordner "open" hat, der wiederum einen Unterordner "command" hat. In dem Ordner "command" steht dann unter dem Wert "Default" welches Programm zum standartmäßigen öffnen grade benutzt wird. Dahinter steht meistens dann noch "%1", das heißt, dass dem Programm einfach noch der Pfad und Name, der aufgerufenen Datei übergeben wird.
So kannst abfragen, welches Programm grade standartmäßig benutzt wird für mp3. Dateien und kannst dann auch selber ändern.
Und zu der Frage mit der Liste, müsstest du dir dann mit diesem System selber noch was einfallen lassen
EDIT:
Pass auf mit der Registry, wenn du dort was änderst

Gibt im Internet ein paar ganz nette Dokumentation über die Registry und wie man sie sichert
