0

myplayer.exe で mp3 ファイルを実行したい (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
     }
    }

これを修正するために私に知らせてください..そしてこのエラーの原因! ありがとうございます!:)

4

2 に答える 2

1

表示されているエラーから判断すると、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 mainProgram.cs

于 2012-04-18T20:30:18.877 に答える
0

あなたが与えたエラーの説明から、コマンド ライン パラメーターに関連する問題のように見えます。アプリケーションのコマンド ライン パラメータを読み取る必要があります。WPF では、Application_Startup イベントを処理してコマンド ライン引数を読み取ることができます。これに従うと、wpf でのコマンド ライン引数の使用を理解できます。 これは、C# で MP3 ファイルを再生する方法の詳細を理解するのに役立ちます..

これが役立つことを願っています。

于 2012-04-19T13:08:27.523 に答える