У меня есть приложение UWP (которое никогда не будет отправлено в магазин), и в этом приложении есть раздел «Администратор». Я хотел бы добавить в этот раздел кнопку, которая будет направлять пользователя на экран блокировки Windows. Оттуда пользователь может решить войти в систему как другой пользователь. Возможно ли это из приложения UWP? Как упоминалось выше, это приложение не будет поступать в магазин, поэтому ему не нужно выполнять какие-либо требования магазина.
Можно ли перейти на экран блокировки в Windows из приложения UWP?
Ответы (1)
Как упоминалось выше, это приложение не будет поступать в магазин, поэтому ему не нужно выполнять какие-либо требования магазина.
Поскольку ваше приложение не будет загружено в магазин, вы можете использовать VS2015TemplateBrokeredComponents для создания моста между приложением UWP и традиционным настольным приложением. Это также означает, что для этой работы нет доступных API-интерфейсов для приложения UWP, но есть API-интерфейсы на основе Win32, которые могут решить эту проблему.
Для выполнения этой работы лучше обратиться к Компоненты среды выполнения Windows через посредника для загружаемых неопубликованными приложениями Магазина Windows, чтобы начать работу.
Шаг, который необходимо предпринять для создания такого приложения, вы можете следовать краткому руководству VS2015TemplateBrokeredComponents. Здесь я НЕ БУДУ снова перечислять шаги, я вставлю только некоторый код, который может вам понадобиться для этого сценария, например здесь, в проекте Brokered WinRT Component
создайте интерфейс "IApLauncher":
[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);
}
}
После создания, регистрации, ссылки на проекты и изменения файла манифеста вы можете использовать его в своем приложении UWP, например, так:
private void Button_Click_1(object sender, RoutedEventArgs e)
{
new AppLauncher().LaunchWithArg(@"C:\WINDOWS\system32\rundll32.exe", "user32.dll,LockWorkStation");
}