我创建了一个全新的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()参数,但我不愿意。其他代码行也称之为,我更愿意将它们保留为“原样”。此外,我我只是好奇为什么这不起作用,似乎应该。
答案 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商店应用程序Environment.GetCommandLineArgs Method没有任何意义,因为无法将命令行参数传递给Windows商店应用程序。
WinRT/Windows store apps
课程中只有Environment
可用的5个属性和一种方法。