2012-12-04 41 views
3

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

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

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

This page上微软的网站似乎表明,这是支持.NET 4.5。是什么赋予了? (我可以在技术上将args作为一个App()参数收集起来,但我不想这样做,其他代码行也会这样调用,而且我宁愿将它们保留为“原样”。只是好奇,为什么这是行不通的,似乎应该。

+0

好奇......如果您完全符合条件,该怎么办? –

+0

但它在Windows应用商店应用中不受支持。他们是不同的。如果是这样的话,版本信息中会有一个部分,如“Windows应用商店应用程序的.NET” –

+0

如果您查看[Environment Class](http://msdn.microsoft.com/zh-cn/library/z8te35sa.aspx )通过查看名称 –

回答

0

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

平台

Windows 8,Windows Server 2012,Windows 7,Windows Vista SP 2,Windows Server 2008(服务器核心角色不支持),Windows Server 2008 R2(服务器核心角色支持SP1或更高版本; Itanium不支持)

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

尽管只有Windows Store应用程序支持标有存储符号的功能。

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

enter image description here

它并没有真正有意义的Windows Store应用程序有Environment.GetCommandLineArgs Method,因为Windows应用商店的应用程序

enter image description here

功能人们无法真正将命令行参数传递给Windows应用商店。

WinRT/Windows store appsEnvironment类中只有5个属性和一个方法可用。

属性

  1. CurrentManagedThreadId
  2. HasShutdownStarted
  3. NewLine
  4. ProcessorCount
  5. TickCount

方法

+0

“Windows API”左侧的图标,可以查看Windows应用商店应用程序支持哪些方法/属性......? – BoltClock

+0

@BoltClock我的意思是说除WinRT/Windows Store应用程序API外。 – Mayank

1

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

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

针对托德的第一条评论进行了更新。

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

+0

我的计划是在Windows资源管理器中右键单击一个文件,然后启动应用程序并处理该文件。 –

+0

更新了“答案”以解决您的目标 –

相关问题