通过双击mp3文件运行在c#中创建的应用程序,但出现错误
我想在myplayer.exe中运行一个mp3文件(我已经用c#编码和开发了)。 但是我得到了这个错误-abc.mp3不是一个有效的Win32应用程序 我使用此代码获取文件路径- app.xaml.cs中的上述代码 在mainWindow.xaml.cs中,这是我使用的代码通过双击mp3文件运行在c#中创建的应用程序,但出现错误,c#,wpf,mp3,exe,C#,Wpf,Mp3,Exe,我想在myplayer.exe中运行一个mp3文件(我已经用c#编码和开发了)。 但是我得到了这个错误-abc.mp3不是一个有效的Win32应用程序 我使用此代码获取文件路径- app.xaml.cs中的上述代码 在mainWindow.xaml.cs中,这是我使用的代码 public CubeWindow() { InitializeComponent(); this.Loaded += new RoutedEventHa
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>
因此,第一个命令行参数是文件名
长话短说:如果您的程序是通过尝试在Windows资源管理器中打开MP3启动的,那么您需要获取并保存命令行参数,以供项目中的某个地方参考
为此,您可以使用
Environment.GetCommandLineArgs()
或将它们从Program.cs
中的static void main
传递到第一个表单的构造函数。根据您给出的错误描述,它看起来像是与命令行参数相关的问题。
您必须读取应用程序的命令行参数。
在WPF中,您可以处理应用程序启动事件以读取命令行参数。
您可以按照以下步骤了解wpf中命令行参数的使用。
将帮助您了解在C#中播放MP3文件的详细信息
希望这会有所帮助。您从哪里得到错误信息?您是如何关联MP3的?为什么不在系统的“我的文件夹”中使用
环境.GetCommandLineArgs()
?@SLaks。。。我有mp3文件。我点击了他们。。我已经用属性更改了打开的文件类型,并将我的exe设置为默认播放器。但是我仍然不知道哪里出错了!如果我通过播放器打开媒体文件浏览媒体文件。。他们干得很好。。但是当我在一个普通的文件夹中双击它们时,我得到了这个错误!你从哪里得到的错误?HKCU\.mp3
中有什么?很抱歉,请您详细说明Environment.GetcommandArgs与我使用的ActivationArgs有何不同??据我所知。。它们用于获取双击的文件!
"<System32 Directory>\Notepad.exe" <filename>
"C:\Windows\System32\Notepad.exe" "C:\Users\user\Desktop\test1.txt"