【问题标题】:Unable to launch Windows App with Process in Windows 10 Anniversary Update在 Windows 10 周年更新中无法使用进程启动 Windows 应用程序
【发布时间】:2016-12-27 04:15:15
【问题描述】:

我正在尝试为 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 一起工作。 有人可以测试吗? 我需要添加一些东西吗?

如果我通过 Run 运行此命令,它仍然可以工作。

【问题讨论】:

  • 假设 Mail 应用程序是您的默认邮件处理程序,您只需运行 mailto://(将 proc.StartInfo.UseShellExecute 设置为 True)即可​​打开默认邮件应用程序。
  • 这不是我想要的结果。我只想打开邮件应用程序。如果我使用您的建议 (mailto://),结果是它会尝试创建新电子邮件。此外,我在那里有多个帐户,当应用程序启动时,它会要求我选择发送电子邮件的帐户。
  • 谢谢,但这仅适用于 Win8。 Win10下无法识别Start-MetroApp命令。
  • 如果您拒绝阅读,您将无济于事。略读在这里对你没有任何好处。

标签: c# process windows-10 launch


【解决方案1】:

我已经在我这边测试过了,它实际上并没有打开电子邮件,只是打开了我的文件夹。 但我认为您不需要使用如此复杂的代码来启动 Mail 应用程序。 只需使用以下代码(通过 Uri 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

【讨论】:

    【解决方案2】:

    首先,我想验证 Windows 10 周年纪念日的变化,这使得启动 Windows 应用程序变得更加棘手。我遇到了与您相同的问题(我使用的是 java 而不是 C#)。 我已经替换了

    “浏览器外壳:AppsFolder\Microsoft.WindowsCamera_8wekyb3d8bbwe!App”

    "explorer microsoft.windows.camera:"

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

    【讨论】:

    • 感谢您提供此解决方案。不幸的是,我回到了 1151。我会在以后变得更好时尝试周年更新。我还有一个问题。我有一个 Windows 窗体应用程序在周年更新时不起作用。是我一个人还是有其他的改变?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多