以编程方式启动 Windows 10 表情符号热键

Yoa*_*ein 7 c# wpf input winforms emoji

Windows 10 的最新主要更新“Fall Creators Update”(又名 RedStone3)添加了可在任何文本框中使用的系统范围表情符号弹出窗口的功能

我正在尝试制作一个程序,当单击按钮时会启动相同的弹出表情符号窗口。正如在另一个关于类似主题的讨论中所建议的那样,我尝试使用InputSimulator项目。还有其他方法,正如这里建议的那样,但似乎模拟器很好地包装了它们。

我所做的只是创建一个新的小型 WPF 应用程序,其中有一个主窗口,其中包含一个 TextBox 和一个按钮。按下按钮将运行以下代码:

textBox.Focus()
new InputSimulator().Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.OEM_PERIOD);
Run Code Online (Sandbox Code Playgroud)

这似乎没有影响!我也试过 OEM_1(这是“:;”键码)而不是 OEM_PERIOD,但仍然没有运气。问题是,LWIN 与另一个键(例如 VK_P)的任何其他组合都可以使用相同的模拟器代码。

如果我尝试按下真实键盘上的表情符号热键,在运行该代码后,第一次按下什么都不做(有时表情符号弹出窗口会显示半秒钟,然后立即消失),然后需要再次按顺序按下热键用于显示弹出窗口。这让我怀疑弹出窗口是否显示,仅在屏幕边界之外,或者等待另一个键盘事件发生/完成?

Rez*_*aei 6

在 Windows 窗体或 WPF 应用程序中打开表情符号面板

\n

您需要处理所需的事件,然后首先处理Focus您的控件,然后使用CoreInputView.GetForCurrentView获取当前窗口的核心输入视图,然后调用其TryShow方法并传递CoreInputViewKind.Emoji给该方法。例如:

\n
//using Windows.UI.ViewManagement.Core;\nprivate async void button1_Click(object sender, EventArgs e)\n{\n    textBox1.Focus();\n    CoreInputView.GetForCurrentView().TryShow(CoreInputViewKind.Emoji);\n}\n
Run Code Online (Sandbox Code Playgroud)\n
\n

注意:对于Windows 窗体WPF项目,在使用上述代码之前,您\n需要配置您的项目以便能够调用桌面\napps 中的 Windows 运行时\nAPI

\n
\n

在 Windows 窗体或 WPF 中调用 Windows 运行时 API

\n

.NET 5

\n
    \n
  1. 解决方案资源管理器 \xe2\x86\x92 右键单击​​项目 \xe2\x86\x92 选择“编辑项目文件”。

    \n
  2. \n
  3. 将 的值更改TargetFramework为以下字符串之一并保存更改。

    \n
      \n
    • net5.0-windows10.0.17763.0:针对 Windows 10 版本 1809。
    • \n
    • net5.0-windows10.0.18362.0:针对 Windows 10 版本 1903。
    • \n
    • net5.0-windows10.0.19041.0:针对 Windows 10 版本 2004。
    • \n
    \n

    例如:

    \n
    <Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">\n  <PropertyGroup>\n    <OutputType>WinExe</OutputType>\n    <TargetFramework>net5.0-windows10.0.18362.0</TargetFramework>\n    <UseWindowsForms>true</UseWindowsForms>\n  </PropertyGroup>\n</Project>\n
    Run Code Online (Sandbox Code Playgroud)\n
  4. \n
\n

.NET 4.X

\n
    \n
  1. 工具 \xe2\x86\x92 NuGet 包管理器 \xe2\x86\x92 包管理器设置 \xe2\x86\x92\n确保为默认包管理格式选择PackageReference

    \n
  2. \n
  3. 解决方案资源管理器 \xe2\x86\x92 右键单击​​项目 \xe2\x86\x92 选择“管理 NuGet 包”。

    \n
  4. \n
  5. 找到Microsoft.Windows.SDK.Contracts包。在 NuGet 包管理器窗口的右侧窗格中,根据要定位的 Windows 10 版本选择所需的包版本,然后单击安装:

    \n
      \n
    • 10.0.19041.xxxx:针对 Windows 10 版本 2004。
    • \n
    • 10.0.18362.xxxx:针对 Windows 10 版本 1903。
    • \n
    • 10.0.17763.xxxx:针对 Windows 10 版本 1809。
    • \n
    • 10.0.17134.xxxx:针对 Windows 10 版本 1803。
    • \n
    \n
  6. \n
\n