Windows 8商店应用程序中的Environment.GetCommandLineArgs

时间:2012-12-04 03:29:09

标签: c# windows-8 windows-store-apps

我创建了一个全新的vanilla c#Windows 8商店应用。在App()函数中,我放了一行代码来收集命令行参数。 IDE抱怨GetCommandLineArgs()不属于Environment。

public App()
{
    this.InitializeComponent();
    this.Suspending += OnSuspending;

    String[] arguments = Environment.GetCommandLineArgs();
}
微软网站上的

This page似乎表明.NET 4.5支持这一点。是什么给了什么?

(我可以在技术上将args收集为App()参数,但我不愿意。其他代码行也称之为,我更愿意将它们保留为“原样”。此外,我我只是好奇为什么这不起作用,似乎应该。

2 个答案:

答案 0 :(得分:1)

如何在命令行上将参数传递给Windows应用商店应用?最接近的模拟可能是LaunchActivatedEventArgs,例如,如果你有二级瓷砖(比如波士顿的天气和檀香山的一个瓷砖 - 相同的应用,不同的参数)。

查看How activate an app了解更多详情。

更新以回应托德的第一条评论。

您正在寻找的是File Activation。您可以指示您的文件知道如何处理,比如.txt文件。当用户右键单击文件资源管理器中的.txt文件时,您的应用程序将显示为“打开方式...”选项。当用户选择他/她想要用来处理文件的应用时,您的应用将启动(或者只是在已经运行的情况下激活)并且其OnFileActivated事件将会触发,您可以通过该事件进入已选择的文件。

答案 1 :(得分:0)

如果您阅读Environment Class的说明,则会明确指出api仅适用于以下操作系统

  

的平台

     

Windows 8,Windows Server 2012,Windows 7,Windows Vista SP2,Windows Server 2008(不支持服务器核心角色),Windows Server 2008 R2(SP1或更高版本支持的服务器核心角色;不支持Itanium)< /强>

     

.NET Framework不支持每个平台的所有版本。有关受支持版本的列表,请参阅.NET Framework系统要求。

虽然Windows商店应用程序仅支持使用商店符号标记的功能。

Windows应用商店应用的功能

enter image description here

非WinRT / Windows商店应用程序的功能

enter image description here

Windows商店应用程序Environment.GetCommandLineArgs Method没有任何意义,因为无法将命令行参数传递给Windows商店应用程序。

WinRT/Windows store apps课程中只有Environment可用的5个属性和一种方法。

属性

  1. CurrentManagedThreadId
  2. HasShutdownStarted
  3. NewLine
  4. ProcessorCount
  5. TickCount
  6. 方法