我正在尝试制作一个程序,当点击按钮时会启动相同的弹出式表情符号窗口。如另一讨论所建议的那样,我尝试使用InputSimulator项目。还有其他方法,如这里所建议的,但似乎模拟器将它们包装得很好。
我所做的只是创建一个新的小型WPF应用程序,其中包含一个主窗口,其中有一个文本框和一个按钮。按下按钮将运行以下代码:
textBox.Focus()
new InputSimulator().Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.OEM_PERIOD);
这似乎没有任何影响!我还尝试过OEM_1(即“:;”键码)而不是OEM_PERIOD,但仍然没有运气。问题是,任何其他LWIN与另一个键的组合(例如VK_P)都可以使用相同模拟器的代码。
如果我尝试在真实键盘上按下Emoji热键,在运行该代码后,第一次按下不起作用(有时表情符号弹出窗口会显示半秒钟,然后立即消失),然后需要再次按下热键才能显示弹出窗口。这使我怀疑可能弹出窗口确实显示在屏幕范围之外,或者等待另一个键盘事件发生/完成?