3

我创建了一个全新的 vanilla c# Windows 8 Store 应用程序。在 App() 函数中,我放置了一行代码来收集命令行参数。IDE 抱怨 GetCommandLineArgs() 不是 Environment 的一部分。

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

    String[] arguments = Environment.GetCommandLineArgs();
}

Microsoft 网站上的此页面似乎表明 .NET 4.5 支持此功能。是什么赋予了?

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

4

2 回答 2

1

您将如何在命令行上将参数传递给 Windows 应用商店应用程序?最接近的模拟可能是LaunchActivatedEventArgs,例如,如果您有辅助磁贴(例如波士顿的天气磁贴和檀香山的天气磁贴 - 相同的应用程序,不同的参数)。

查看如何激活应用程序以获取更多详细信息。

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

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

于 2012-12-04T07:04:44.127 回答
0

如果您阅读Environment Class的描述,它明确指出该 api 仅适用于以下操作系统

平台

Windows 8、Windows Server 2012、Windows 7、Windows Vista SP2、Windows Server 2008(不支持服务器核心角色)、Windows Server 2008 R2(SP1 或更高版本支持服务器核心角色;不支持安腾)

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

但是,Windows 商店应用程序仅支持标有商店符号的功能。

Windows 应用商店应用程序的功能

在此处输入图像描述

非 WinRT/Windows 商店应用程序的函数

在此处输入图像描述

Windows 商店应用程序拥有Environment.GetCommandLineArgs 方法并没有真正意义,因为不能真正将命令行参数传递给 Windows 商店应用程序。

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

特性

  1. CurrentManagedThreadId
  2. 已关机开始
  3. 新队
  4. 处理器计数
  5. 滴答计数

方法

于 2012-12-04T04:40:37.343 回答