首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式启动Windows 10 Emoji热键

以编程方式启动Windows 10 Emoji热键
EN

Stack Overflow用户
提问于 2017-10-26 19:23:14
回答 2查看 1.5K关注 0票数 8

最新的Windows 10主要更新,“秋季创建者更新”(AKA RedStone3),具有可在任何文本框中使用的添加了系统范围内的表情弹出功能。

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

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

代码语言:javascript
复制
textBox.Focus()
new InputSimulator().Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.OEM_PERIOD);

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

如果我试图在真正的键盘上按下Emoji热键,在运行该代码之后,第一个按键什么也不做(有时表情符号弹出显示半秒钟后消失),然后需要再次按热键,以便弹出窗口显示。这让我怀疑,弹出窗口可能只显示在屏幕边界之外,还是在等待另一个键盘事件发生/结束?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-23 19:13:05

在Windows窗体或WPF应用程序中打开Emoji面板

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

代码语言:javascript
复制
//using Windows.UI.ViewManagement.Core;
private async void button1_Click(object sender, EventArgs e)
{
    textBox1.Focus();
    CoreInputView.GetForCurrentView().TryShow(CoreInputViewKind.Emoji);
}

备注: For Windows窗体WPF项目,在使用上述代码之前,需要将项目配置为能够在桌面应用程序中调用Windows运行时API

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

.NET 5

  1. “解决方案资源管理器”→右键单击项目→,选择“编辑项目文件”。
  2. TargetFramework的值更改为以下字符串之一并保存更改。
代码语言:javascript
复制
- `net5.0-windows10.0.17763.0`: for targeting Windows 10, version 1809.
- `net5.0-windows10.0.18362.0`: for targeting Windows 10, version 1903.
- `net5.0-windows10.0.19041.0`: for targeting Windows 10, version 2004.

例如:

WinExe net5.0-窗口10.0.18362.0真

.NET 4.X

  1. Tools NuGet Package Manager→Package Manager Settings→确保为默认包管理格式选择了PackageReference。
  2. 在项目NuGet上右键单击“解决方案资源管理器→”,选择“管理→包”。
  3. 找到Microsoft.Windows.SDK.Contracts包。在“NuGet软件包管理器”窗口的右侧窗格中,根据要针对的Windows10版本选择所需的软件包版本,然后单击“安装”:
代码语言:javascript
复制
- `10.0.19041.xxxx`: for targeting Windows 10, version 2004.
- `10.0.18362.xxxx`: for targeting Windows 10, version 1903.
- `10.0.17763.xxxx`: for targeting Windows 10, version 1809.
- `10.0.17134.xxxx`: for targeting Windows 10, version 1803.
票数 5
EN

Stack Overflow用户

发布于 2021-02-13 22:32:53

由于无法让这些更优雅的解决方案发挥作用,我只好求助于键盘呼叫。这很适合我的需要,所以我想我可以分享。

代码语言:javascript
复制
 Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As IntPtr, ByVal bScan As IntPtr, ByVal dwFlags As IntPtr, ByVal dwExtraInfo As IntPtr)

 Private Sub EmojiLaunch_Click(sender As Object, e As EventArgs) Handles EmojiLaunch.Click

    Call keybd_event(&H5B, 0, &H0, 0) 'Windows Key Down
    Call keybd_event(&HBE, 0, &H0, 0) 'Period Key Down
    Call keybd_event(&HBE, 0, &H2, 0) 'Period Key Up
    Call keybd_event(&H5B, 0, &H2, 0) 'Windows Key Up

 End Sub

EmojiLaunch是一个标签,您不想使用按钮,因为它会改变焦点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46962262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档