0

チャンネル用に mIRC ボットをセットアップしようとしています。現在のプロジェクトでは、特定のイベントが発生するたびにコンピューターでオーディオ ファイルを再生しています。

引数からファイルの名前を取得し、そのファイルを再生する短い C# コンソール アプリを作成しました。

これは、cmd から実行するか、ショートカットを使用して実行できますが、自分のチャネルでコマンドを入力すると、プログラムが起動しますが、FileNotFound 例外がスローされます。

何が起こっているのかを正確に確認するために、try{} catch{} を使用していくつかのコードを書きました。ファイルの再生に失敗した場合、最初に指定された引数、拡張子 (後で変更します)、最後に結合された文字列がリストされます。それはこれを思い付くものです:

args[0]: audiofile
extension: .wav
filename: audiofile.wav

これはまさにファイル名であり、コマンドラインから完全に再生されます。

ここで何が起こっているか知っている人はいますか?

static void Main(string[] args)
{
    string extension = ".wav";
    string filename = "null";
    if (args == null || args.Length == 0)
    {
        Console.WriteLine("No arguments provided!");
        Console.ReadLine();
        return;
    }
    filename = args[0] + extension;
    Console.Write("Press enter to play grenade... ");
    Console.ReadLine();
    try
    {
        Console.WriteLine("Playing file " + filename);
        (new SoundPlayer(filename)).Play();
    }
    catch 
    {
        Console.WriteLine("Error!");
        Console.WriteLine("args[0]: " + args[0]);
        Console.WriteLine("extension: " + extension);
        Console.WriteLine("filename: " + filename);
    }
    Console.ReadLine();
}

mIRC スクリプト:

on $*:text:!grenade:#: {
  /run "c:/users/electrospeed/documents/visual studio 2013/projects/audioplayer/audioplayer/bin/debug/audioplayer.exe" audiofile
}
4

2 に答える 2

0

mIRC コードの最後に書いaudiofileてありましたが、間違っていたら訂正してください%audiofile

于 2014-10-30T10:26:57.033 に答える
0

ディレクトリ パスに引用符は必要ないと思います。

于 2014-10-30T18:42:59.473 に答える