Windows 10 的最新主要更新“秋季创意者更新”(又名 RedStone3)具有 added the functionality of a system-wide emoji pop-up可以在任何文本框中使用。
我正在尝试制作一个程序,当单击按钮时会启动相同的弹出表情符号窗口。正如 another discussion 中所建议的关于类似的话题,我尝试使用 InputSimulator项目。还有其他方式,建议here ,但似乎那个模拟器很好地包装了它们。
我所做的只是创建一个新的小型 WPF 应用程序,其中有一个主窗口,其中包含一个 TextBox 和一个按钮。按下按钮将运行以下代码:
textBox.Focus()
new InputSimulator().Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.OEM_PERIOD);
这似乎没有影响!我也试过 OEM_1(它是“:;”键码)而不是 OEM_PERIOD,但仍然没有运气。问题是,LWIN 与另一个键(例如 VK_P)的任何其他组合都可以使用相同的模拟器代码。
如果我尝试按下真实键盘上的表情符号热键,在运行该代码后,第一次按下什么都不做(有时表情符号弹出窗口会显示半秒钟,然后立即消失),然后需要再次按顺序按下热键用于显示弹出窗口。这让我怀疑弹出窗口是否显示,仅在屏幕边界之外,或者等待另一个键盘事件发生/完成?
最佳答案
在 Windows 窗体或 WPF 应用程序中打开表情符号面板
您需要处理所需的事件,然后首先 Focus
到您的控制,然后使用 CoreInputView.GetForCurrentView
获取当前窗口的核心输入 View ,然后调用它的 TryShow
方法和通行证 CoreInputViewKind.Emoji
到方法。例如:
//using Windows.UI.ViewManagement.Core;
private async void button1_Click(object sender, EventArgs e)
{
textBox1.Focus();
CoreInputView.GetForCurrentView().TryShow(CoreInputViewKind.Emoji);
}
Note: For Windows Forms or WPF project, before using above code, you need to configure your project to be able to call Windows Runtime APIs in desktop apps.
在 Windows 窗体或 WPF 中调用 Windows 运行时 API
.NET 5
TargetFramework
的值到以下字符串之一并保存更改。net5.0-windows10.0.17763.0
:针对 Windows 10 版本 1809。net5.0-windows10.0.18362.0
:针对 Windows 10 版本 1903。net5.0-windows10.0.19041.0
:针对 Windows 10,版本 2004。例如:
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net5.0-windows10.0.18362.0</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
</Project>
.NET 4.X
确保为默认包管理格式选择了 PackageReference。
Microsoft.Windows.SDK.Contracts
包裹。在 NuGet 包管理器窗口的右 Pane 中,根据要定位的 Windows 10 版本选择所需版本的包,然后单击安装:10.0.19041.xxxx
:针对 Windows 10,版本 2004。10.0.18362.xxxx
:针对 Windows 10 版本 1903。10.0.17763.xxxx
:针对 Windows 10 版本 1809。10.0.17134.xxxx
:针对 Windows 10 版本 1803。关于c# - 以编程方式启动 Windows 10 表情符号热键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46962262/