在 Windows 10/11 上,可以通过按
WIN+.
键(Windows 键 + 句号键) 来调用 Windows 表情符号面板
我尝试模拟按下这些键:
procedure ShowEmojiPanel;
var
Inputs: array[0..3] of TInput;
begin
// Simulate pressing the Windows Key
ZeroMemory(@Inputs, SizeOf(Inputs));
Inputs[0].Itype := INPUT_KEYBOARD;
Inputs[0].ki.wVk := VK_LWIN;
// Simulate pressing the '.' key
Inputs[1].Itype := INPUT_KEYBOARD;
Inputs[1].ki.wVk := Ord('.');
// Simulate releasing the '.' key
Inputs[2].Itype := INPUT_KEYBOARD;
Inputs[2].ki.wVk := Ord('.');
Inputs[2].ki.dwFlags := KEYEVENTF_KEYUP;
// Simulate releasing the Windows Key
Inputs[3].Itype := INPUT_KEYBOARD;
Inputs[3].ki.wVk := VK_LWIN;
Inputs[3].ki.dwFlags := KEYEVENTF_KEYUP;
// Send the inputs
SendInput(4, Inputs[0], SizeOf(TInput));
end;
procedure ShowEmojiPanel;
begin
// Press WIN key
keybd_event(VK_LWIN, 0, 0, 0);
// Press period (.)
keybd_event(Ord('.'), 0, 0, 0);
// Release period (.)
keybd_event(Ord('.'), 0, KEYEVENTF_KEYUP, 0);
// Release WIN key
keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
end;
但是,这些程序似乎都无法打开我的
Windows 11
上的Windows表情符号面板。
是否有另一种方式以编程方式显示 Windows 表情符号面板?
如果您指定
SendInput
而不是 VK_OEM_PERIOD
,您的 Ord('.')
方法应该有效。