2016-08-19 70 views
0

我正在尝试为Windows应用程序制作一个简单的启动程序。特别针对邮件应用程序无法在Windows 10周年更新中使用进程启动Windows应用程序

public static void Main() 
{ 
     Process proc = new Process(); 
     proc.StartInfo.FileName = "explorer.exe"; 
     proc.StartInfo.Arguments = @"shell:Appsfolder\microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.mail"; 
     proc.Start(); 

     // Short code 
     //Process.Start("explorer", @"shell:Appsfolder\microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.mail"); 
} 

此代码在安装了周年纪念更新后无法使用。 它与以前版本的Windows一起工作。 有人可以测试它吗? 我需要添加一些东西吗?

如果我运行这个命令通过运行它的工作虽然。

+0

假设邮件应用程序是您的默认邮件处理程序,您可以运行'mailto://'(将proc.StartInfo.UseShellExecute设置为True)来打开默认邮件应用程序。 –

+0

这不是我想要的结果。我只想打开邮件应用程序。如果我使用您的建议(mailto://),结果是它会尝试创建新的电子邮件。此外,我有更多的一个帐户,当应用程序启动时,它会要求我选择电子邮件发送的帐户。 – zdzdz

+0

https://powertoe.wordpress.com/2012/11/02/get-a-list-of-metro-apps-and-launch-them-in-windows-8-using-powershell/ –

回答

0

我已经在我身边测试过了,它实际上并没有打开电子邮件,只是打开我的文档文件夹。 但我不认为你需要使用如此复杂的代码来启动邮件应用程序。 只需使用下面的代码(由乌里ms-unistore-email启动电子邮件):

Process proc = new Process(); 
proc.StartInfo.FileName = "explorer.exe"; 
proc.StartInfo.Arguments = "ms-unistore-email://"; 
proc.Start(); 

使用URI推出一个应用程序是在代码中流行。您可以参考以下链接:How can I launch the Alarms App through a Universal Windows App

0

首先,我想验证一下,Windows 10周年的变化使得启动Windows应用程序变得更加棘手。我遇到了同样的问题(我使用java代替C#)。 我已经取代

“资源管理器外壳:AppsFolder \ Microsoft.WindowsCamera_8wekyb3d8bbwe应用”

通过

“探险microsoft.windows.camera:”

使其工作(在这种情况下相机)。 请注意,这两个命令在从Windows直接执行时都有效,但从第三方程序启动时,只有第二个命令可以正常工作。

+0

谢谢你的解决方案。不幸的是,我回到了1151年。当它变得更好时,我会尝试周年纪念更新。我还有一个问题。我有一个Windows窗体应用程序不能用于周年纪念更新。只是我还是还有别的改变? – zdzdz

相关问题