我正在尝试为我的频道设置一个 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
}