通过双击 mp3 文件运行在 c# 中创建的应用程序,但出现错误
本文关键字:应用程序 错误 创建 mp3 双击 文件 运行 | 更新日期: 2023-09-27 18:31:38
我想在myplayer中运行一个mp3文件.exe(我用c#编码和开发)。但是我收到此错误 - abc.mp3 不是有效的 Win32 应用程序。
我用这段代码来获取文件路径 -...
if
((AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData != null)
&&
(AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData.Length>0))
{
string fname = "No filename given";
try
{
fname = AppDomain.CurrentDomain.SetupInformation.
ActivationArguments.ActivationData[0];
Uri uri = new Uri(fname);
fname = uri.LocalPath;
this.Properties["ArbitraryArgName"] = fname;
}
catch (Exception ex)
{ }
base.OnStartup(e);
}
上面的代码在 app.xaml 中.cs
而在 mainWindow.xaml 中.cs ,这是我使用过的代码!
public CubeWindow()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(MainContainer_Loaded);
}
void MainContainer_Loaded(object sender, RoutedEventArgs e)
{
if(System.Windows.Application.Current.Properties["ArbitraryArgName"] != null)
{
string fname=System.Windows.Application.Current.
Properties["ArbitraryArgName"].ToString();
me.Source = new Uri(fname, UriKind.RelativeOrAbsolute);
me.Play(); //me is the mediaelement
}
}
请让我知道更正此问题..以及此错误的原因!提前感谢!:)
从您遇到的错误来看,您似乎正在尝试执行 MP3。那行不通。
当您尝试通过双击打开文件(例如 txt 文件)时,Windows 会检查注册表中该文件的默认应用程序 - 在大多数设置中,该文件将是记事本。然后发送以下命令:
"<System32 Directory>'Notepad.exe" <filename>
或
"C:'Windows'System32'Notepad.exe" "C:'Users'user'Desktop'test1.txt"
因此,第一个命令行参数是文件名。
长话短说:如果您的程序是通过尝试在 Windows 资源管理器中打开 MP3 启动的,则需要获取并保存命令行参数以供项目中的某个位置引用。
为此,您可以使用 Environment.GetCommandLineArgs()
或将它们从 static void main
in Program.cs
传递到第一个窗体的构造函数。
从您给出的错误描述来看,它看起来像是与命令行参数相关的问题。您必须读取应用程序的命令行参数。在 WPF 中,可以处理 Application_Startup 事件以读取命令行参数。您可以按照此操作来了解 wpf 中命令行参数的使用。这将帮助您了解在 C# 中播放 MP3 文件的详细信息。
希望这会有所帮助。