PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Win32-Perl: ShellExecute



Thomas Engelke
07-07-2006, 21:22
Hallo!

Ich habe ein kleines Script in Perl geschrieben, um mir eine bestimmte Seite parsen zu lassen. Dort hole ich jetzt Links heraus (ED2k-Links). Diese haben eine bestimmte Form, z.B.:

ed2k://|file|Adam.Beyer.Live.@.Electronica.Festival.Istan bul.05.06.2004.Part-2.mp3|66543616|70ED995274860543AB1953510C1BB358|/

Diese möchte ich jetzt, nachdem ich sie extrahiert habe, in meinen EMule einfügen lassen. Leider führt &system() dies nicht auf die richtige Art aus: "Der Befehl ed2k ... wurde nicht gefunden".

Die Ausführung mittels Start -> Ausführen eines solchen Links klappt hervorragend. Ich benötige also eine Möglichkeit, mittels Perl diese Art von Ausführung zu emulieren.

Kennt da jemand ein Modul oder einen anderen Trick?

Ich hab's schon mittels &system("rundll32 kernel32,ShellExecuteExA ...") versucht, aber dort findet rundll32 die Funktion nicht.

Danke,

TME

michael.sprick
08-07-2006, 13:42
Hi,

ich vermute mal ganz stark, dass Du einfach nur den absouluten Pfad zu ed2k und vor allem den echten Dateinamen (also mit .exe) angeben musst...
Also etwa so:



my $ed2k = 'C:\Programme\ED2K\bin\ed2k.exe';
system($ed2k,@Parameter) or die $!;

Thomas Engelke
08-07-2006, 19:19
Hallo Michael,

das war's! Obwohl ich mir bereits die Kommandozeilenparameter von EMule in der Dokumentation angeschaut hatte (es gibt dort keine Möglichkeit, ihm einen neuen Link mitzugeben), handelt es sich scheinbar bei "emule.exe <link>" um einen undokumentierten Aufruf, der funktioniert.

Vielen Dank für die Idee!

TME