0

kmplayer または winamp がビデオの再生を開始したときに開始するアプリケーションを (C# で) 書きたいのですが、ビデオ ファイルのパスを知る必要があります。

編集:いくつかの検索、コーディング、およびテストの後、 sharpamp
ラッパー を使用してこれを実行できるようになりました。winampでメディア ファイルを開いている間はすべて問題ありませんが、kmplayer ではファイル名は常に空です。ファイル名を取得するための私のプラグイン コードは次のようになります。

public class ThePlugin : GeneralPlugin
{
    public override void Initialize()
    {
        if (!string.IsNullOrEmpty(Winamp.CurrentSong.Filename))
        {
            MessageBox.Show(Winamp.CurrentSong.Filename);
        }
        else
        {
            MessageBox.Show("File name is empty. ");
        }
    }
}

km を使用した結果は「ファイル名が空です」です。Sharpamp
Winampクラスには、次のコード行を含む「UpdateSongData」という名前のメソッドがあります。

string filename = SendIPCCommandString(IPCCommand.GetFilename);

このコードは再生中のメディアのファイル名を取得するためのものなので、この 2 つのプレーヤーの "GetFilename" (ここでは 3031) の IPC コマンドが異なっていたのでしょうか? それとも別の問題ですか?

4

1 に答える 1

2

もっと簡単な方法があるかもしれませんが、winamp に対して次のようなことを繰り返し試すことができます (完全にテストされていません):

Process[] processes = Process.GetProcessesByName("winamp");
foreach (Process p in processes)
{
    string winampTitle = p.MainWindowTitle;

    // Check the title to see if it contains a video filename, and do
    // something with it..
}
于 2012-07-25T14:39:23.353 に答える