У меня есть приложение UWP, работающее в режиме ограниченного доступа на планшете с Windows без физической клавиатуры. После того, как пользователь завершит операцию, я хочу позволить пользователю выключить планшет (не могу Alt + CTRL + DEL и выключить, так как нет физической клавиатуры). Я знаю, что от UWP нет API для выключения планшета. но есть ли обходные пути? Как Microsoft справляется с этим сценарием?
Как выключить планшет с Windows из приложения UWP, работающего в режиме ограниченного доступа?
Ответы (1)
Это недостижимо в приложении UWP, которое работает внутри контейнера приложения и не имеет такой привилегии.
Однако вы можете опробовать компоненты среды выполнения Windows с посредником для загружаемых неопубликованных приложений из Магазина Windows. По сути, он позволяет приложению UWP вызывать Win32 API, размещенный в другом процессе, который выполняется вне контейнера приложения.
Внутри вашего брокерского компонента вы можете использовать приведенный ниже код для выключения вашего ПК.
var psi = new ProcessStartInfo("shutdown", "/s /t 0");
psi.CreateNoWindow = true;
psi.UseShellExecute = false;
Process.Start(psi);
Ниже представлен шаблон компонента WinRT при посредничестве для VS2015 https://visualstudiogallery.msdn.microsoft.com/d2e9cac0-66a8-464a-a902-55ae765c8e6e?tduid=(c5f2776eb12ea55b8926d0c075062c075062c)gN1OuW5VyKxMyOTAH.bK0w)()»отн=
Ниже приведен очень хороший пример создания компонентов через посредника для UWP: https://xamltips.wordpress.com/2015/11/13/brokered-component-for-uwp-on-windows-10/
Для получения дополнительной информации см. https://msdn.microsoft.com/en-us/library/windows/apps/dn630195.aspx