c# - 如何从以指定访问模式运行的 UWP 应用程序关闭 Windows 平板电脑?

标签 c# windows-10 uwp kiosk-mode windows-10-universal

我有一个 UWP 应用程序在没有物理键盘的 Windows 平板电脑上以指定访问模式运行。用户完成操作后,我想让用户关闭平板电脑(不能按 Alt+CTRL+DEL 并关闭,因为没有物理键盘)。我知道 UWP 没有 API 可以关闭平板电脑。但是有什么解决方法吗? Microsoft 如何处理这种情况?

最佳答案

这在 UWP 应用程序中是无法实现的,它在 App Container 中运行,并且没有这样的特权。

但是,您可以为旁加载的 Windows 应用商店应用试用 Brokered Windows Runtime Components。本质上,它允许您的 UWP 应用程序调用托管在不同进程中的 Win32 API,该进程在应用程序容器之外运行。

在您的代理组件中,您可以使用以下代码关闭您的 PC。

var psi = new ProcessStartInfo("shutdown", "/s /t 0");
psi.CreateNoWindow = true;
psi.UseShellExecute = false;
Process.Start(psi);

下面是 VS2015 的代理 WinRT 组件模板 https://visualstudiogallery.msdn.microsoft.com/d2e9cac0-66a8-464a-a902-55ae765c8e6e?tduid=(c5f2776eb12ea55b8926d0c075062c9d)(256380)(2459594)(TnL5HPStwNw-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

关于c# - 如何从以指定访问模式运行的 UWP 应用程序关闭 Windows 平板电脑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34604593/

相关文章:

c# - 无法隐式转换类型字符串

email - 带有 Outlook 条件 VML 的 Windows 10 邮件应用程序

python-3.x - 多线程爬虫运行一段时间后越来越慢

c# - UWP 应用程序 - AdControl 不显示任何具有测试模式值的内容

c# - 如何在 UWP 应用程序中播放 .mp3(或其他)文件?

c# - 第三方库中麻烦的 GC.collect() 调用

c# - 如何仅从接口(interface)和方法名称调用方法?

c# - 延迟模板字符串插值

linux - 在 Windows 10 上使用 bash 定位我的串行端口时遇到问题

c# - 将 IBuffer 转换为 IRandomAccessStream