首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用自己的C#应用程序打开自定义文件

使用自己的C#应用程序打开自定义文件
EN

Stack Overflow用户
提问于 2016-12-22 12:32:54
回答 2查看 352关注 0票数 1

我在创造一个媒体播放器。

到目前为止,我可以通过双击C#应用程序打开文件类型。但是我想通过选择多个文件并同时打开它们来打开它们。

我的代码如下:

App.xmal.cs

代码语言:javascript
复制
protected override void OnStartup(StartupEventArgs e)
{    
    if (e.Args != null && e.Args.Length > 0)
    {
        this.Properties["ArbitraryArgName"] = e.Args[0];
    }

    base.OnStartup(e);
}

MainWindow.xmal.cs

代码语言:javascript
复制
if (Application.Current.Properties["ArbitraryArgName"] != null)
{
    string fname = Application.Current.Properties["ArbitraryArgName"].ToString();           

    if (fname.EndsWith(".mp3") || fname.EndsWith(".wma") || fname.EndsWith(".wav") || fname.EndsWith(".mpg") || 
        fname.EndsWith(".mpeg") || fname.EndsWith(".mp4") || fname.EndsWith(".wmv") )
    {
        doubleclicktrack(fname);
    }
    else
    {
         this.Close();
    }
}

这段代码可以很好地处理一个文件,但是如何通过选择多个文件并同时打开它们(按enter键)来改变它,以便同时打开多个文件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-22 12:55:09

为了实现您想要的结果,您必须研究开发外壳扩展。只要使用注册表将文件类型与应用程序关联起来,您就只能在每个命令中传递一个文件,这最终会在每个文件中打开应用程序一次(您已经确认了)。

我想您也可以实现您的应用程序,以便只允许一个实例在全球运行。这样,每当有一个命令进来再打开一个文件时,您就可以将它添加到播放列表或其他东西中。

请注意,外壳扩展必须用C++编写,为此,微软强烈建议避免使用托管代码。

您可以在这里找到文档的起点:https://msdn.microsoft.com/en-us/library/windows/desktop/bb776778(v=vs.85).aspx

票数 1
EN

Stack Overflow用户

发布于 2016-12-22 12:46:54

FileOpenPicker可以做到这一点( UWP或Windows8.1桌面代码,Windows8.1手机则要复杂一些):

代码语言:javascript
复制
private static readonly string[] FileTypes =  {
   "aac", "adt", "adts", "mp3", "m3a", "m4a", "mpr", "3gp", "3g2",
   "flac", "wav", "wma"  };

...........

FileOpenPicker picker = new FileOpenPicker();
picker.SuggestedStartLocation = PickerLocationId.MusicLibrary;
foreach (String fileType in FileTypes)
     picker.FileTypeFilter.Add("." + fileType);

var list = await picker.PickMultipleFilesAsync();

您的清单必须在功能上声明“音乐库”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41283291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档