是否可以从UWP应用程序导航到Windows中的锁定屏幕?

时间:2016-07-21 22:46:01

标签: uwp lockscreen

我有一个UWP应用程序(永远不会提交给商店),在这个应用程序中有一个" admin"部分。我想在此部分添加一个按钮,将用户导航到Windows锁定屏幕。从那里,用户可以决定以不同的用户身份登录。这可能来自UWP应用程序吗?如上所述,此应用程序不会进入商店,因此不需要传递任何商店要求。

1 个答案:

答案 0 :(得分:2)

  

如上所述,此应用程序不会进入商店,因此无需传递任何商店要求。

由于您的应用不会上传到商店,因此您可以使用VS2015TemplateBrokeredComponents在UWP应用和传统桌面应用之间搭建桥梁。这也意味着,UWP应用程序没有可用于此工作的API,但基于Win32的API可以解决此问题。

要完成这项工作,最好引用Brokered Windows Runtime Components for side-loaded Windows Store apps开始。

构建此类应用需要采取的步骤,您可以按照VS2015TemplateBrokeredComponents的简要指导进行操作。在这里,我不会再次列出这些步骤,我将仅粘贴您可能需要的一些代码,例如,在Brokered WinRT Component项目中创建一个“IAppLauncher”界面:< / p>

[ComVisible(true)]
public interface IAppLauncher
{
    /// <summary>
    /// Launch desktop application from file name
    /// </summary>
    /// <param name="fileName">target application executable file name</param>
    void Launch(string fileName);

    void LaunchWithArg(string fileName, string arguments);
}

创建一个继承自此接口的“AppLauncher”类:

[ComVisible(true)]
public sealed class AppLauncher : IAppLauncher
{
    /// <summary>
    /// Launch desktop application from file name
    /// </summary>
    /// <param name="fileName">target application executable file name</param>
    public void Launch(string fileName)
    {
        Process.Start(fileName);
    }

    public void LaunchWithArg(string fileName, string arguments)
    {
        Process.Start(fileName, arguments);
    }
}

在构建,注册,引用项目和修改Manifest文件之后,您可以在UWP应用程序中使用它,例如:

private void Button_Click_1(object sender, RoutedEventArgs e)
{
    new AppLauncher().LaunchWithArg(@"C:\WINDOWS\system32\rundll32.exe", "user32.dll,LockWorkStation");
}