通过双击 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 文件运行在 c# 中创建的应用程序,但出现错误

从您遇到的错误来看,您似乎正在尝试执行 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 文件的详细信息。

希望这会有所帮助。