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