Hallo,
ich suche irgendein Weg auf Winamp zuzugreifen (Dateien in Playlist hinzufügen, Play, Pause...).
Bin für jede Hilfe dankbar.
mfg Christoph
Hallo cwer,
hinzufügen geht schon u.a. schon mal so:
Process p = new Process();
p.StartInfo.FileName = @"c:\\Programme\\Winamp\\winamp.exe";
p.StartInfo.Arguments = "/add "+ file;
p.Start ();
herbivore
Danke für die schnelle Antwort, aber es scheint so als komme dieser Befehl nicht mit
Leerzeichen zurecht. Also im Dateinamen dürfen keine Leerzeichen vorkommen sonst interpretiert das Winamp als mehrere Dateien.
mfg Christoph
Also habs jetzt nur direkt von der Shell aus getestet, aber da reicht es wenn man denn Dateinamen in Anführungszeichen setzt und er hält es für eine Datei.
Müsste dann wohl so im Code aussehen:
p.StartInfo.Arguments = "/add "+ "\"" + file + "\"";
Fall du eine Winamp Steuerung über die Window Messages machen willst findest du hier eine überblick über die Messages die du schicken kannst. Winamp SDK
Weiterhin findest du beim Code Projekt ein Tutorial wie du die Window Message mit Winamp benutzen kannst. Das Beispiel ist zwar nur um den Song Title rauszubekommen, aber ich glaube das läßt sich gut ableiten.
Gruß
LordK
Programmieren in C# hält die grauen Zellen am Leben.
Es schärft alle fünf Sinne: den Schwachsinn, den Blödsinn, den Wahnsinn, den Unsinn und den Stumpfsinn.
@cwer: Wäre schön, wenn du zukünftig mal dein Thema etwas genauer definierst als einfach nur "Winamp" das Schlüsselwort Steuererung oder Zugriff hätte viel bewirkt.
Zusatzfrage : wie kann mein Programm herausfinden, in welchem verzeichnis winamp installiert ist ?
Ich weiß nicht ob es ne Suchmethode gibt, aber wenn nicht, könntest du einfach alle Verzeichnisse nach der exe durchsuchen (dauert bestimmt ewig) - wie das wohl andre machen?!
Zusatzfrage : wie kann mein Programm herausfinden, in welchem verzeichnis winamp installiert ist ?
Zum Beispiel über WMI:
public static string GetSoftwareLocation(string name) {
ManagementClass productClass = new ManagementClass("Win32_Product");
foreach(ManagementObject product in productClass.GetInstances()) {
string productName = (string)product.GetPropertyValue("Name");
if (productName.Contains(name)) {
return (string)product.GetPropertyValue("InstallLocation"); ;
}
}
return null;
}
Hat bei mir zumindestens mal mit Adobe Reader und Kaspersky
funktioniert, mit mehr hab ich es dann auch nicht mehr getestet.
Ich habe nämlich Winamp nicht installiert ..
grüße
Hallo ikarus7,
brute-force aber simpel wäre aus der Registry den Wert von
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Winamp.File\shell\open\command
auszulesen.
herbivore
ok, zwei fragen :
was muss ich noch einbinden um WMI nutzen zu können,
wie lese ich einen solchen Registrystring aus ? konnte das bisher nur mit Delphi ...