【问题标题】:Manually trigger on-screen keyboard in Windows Universal App on Windows 10 IoT Core?在 Windows 10 IoT Core 上的 Windows 通用应用程序中手动触发屏幕键盘?
【发布时间】:2017-08-24 14:44:33
【问题描述】:

由于某种原因,树莓派 2 型号 b 上的 Windows 10 IoT Core 中的屏幕键盘并不总是出现在最前面。 (实际上 99% 都不行)。

是否可以在代码隐藏中手动调用(例如当 OnFocus 事件发生时)以显示 osk?

【问题讨论】:

  • 你的 windows 10 iot 核心版本是什么?您能否提供代码示例来重现您的问题?

标签: c# xaml win-universal-app iot windows-10-iot-core


【解决方案1】:

osk 实际上是一个单独的程序,您可以使用 External Process Launcher API 调用它。
https://developer.microsoft.com/en-us/windows/iot/samples/externalprocesslauncher

据我了解,它仅适用于 Windows SDK:但是版本 15063 及更高版本。

我没有在工作中安装 SDK,所以这段代码可能是错误的,但它看起来有点像这样:

var result = await ProcessLauncher.RunToCompletionAsync("C:\\Windows\\System32\\osk.exe", string.Empty);

编辑:
我认为这可能会阻塞 UI 线程,这是不可取的。也许如果你在后台运行任务......也许通过CoreDispatcher。
https://docs.microsoft.com/en-us/uwp/api/Windows.UI.Core.CoreDispatcher#Windows_UI_Core_CoreDispatcher_RunAsync_Windows_UI_Core_CoreDispatcherPriority_Windows_UI_Core_DispatchedHandler_

var ignored = dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () =>
    {
        await ProcessLauncher.RunToCompletionAsync("C:\\Windows\\System32\\osk.exe", string.Empty);
    });

【讨论】:

  • 我在 14971 的发行说明中看到了这一点...social.msdn.microsoft.com/Forums/en-US/…“屏幕键盘 (OSK) 作为可选包添加并添加到默认 FFU。OSK 是默认禁用,必须通过 Windows 设备门户(Web 管理)中的新选项启用。"
  • 是的,我已在设备门户中启用它,但如果我通过 Windows 资源管理器(远程)浏览设备,我在 system32 文件夹中看不到 osk.exe。它有不同的名称吗?问题是默认提供的 osk 并不总是在文本框焦点上弹出......试图解决这个问题。 (或者我可以等待 Windows 更新...)
猜你喜欢
  • 2015-11-11
  • 2019-02-19
  • 2016-05-01
  • 2018-11-03
  • 2017-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
相关资源
最近更新 更多