从Delphi代码中打开表情面板

从Delphi代码中打开表情面板,delphi,emoji,Delphi,Emoji,我想通过点击速度按钮,为TEdit打开Windows 10表情面板。可以通过模拟Win+来实现。键组合,但我不确定如何模拟windows键 表情符号面板如下所示 建议?这似乎有效 keybd_event(VK_LWIN, 0, 0, 0); // Left Win down keybd_event(190, 0, 0, 0); // "." down keybd_event(190, 0, KEYEVENTF_KEYUP, 0); // "."

我想通过点击速度按钮,为TEdit打开Windows 10表情面板。可以通过模拟Win+来实现。键组合,但我不确定如何模拟windows键

表情符号面板如下所示

建议?

这似乎有效

  keybd_event(VK_LWIN, 0, 0, 0); // Left Win down
  keybd_event(190, 0, 0, 0); // "." down
  keybd_event(190, 0, KEYEVENTF_KEYUP, 0); // "." up
  keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0); // Left Win up
(根据雷米的建议)

但是如果有更好的建议…

你看到了吗?不要使用
keybd\u event()
,它早就被弃用了。改用。
procedure ShowEmoji;
var
  k: array [0..3] of TInput;
  I: Integer;
begin
  ZeroMemory(@k,sizeof(k));

  for I := low(k) to high(k) do
   k[i].Itype := INPUT_KEYBOARD;

  k[0].ki.wVk := VK_LWIN;
  k[1].ki.wVk := 190;
  k[2].ki.wVk := 190;
  k[2].ki.dwFlags := KEYEVENTF_KEYUP;
  k[3].ki.wVk := VK_LWIN;
  k[3].ki.dwFlags := KEYEVENTF_KEYUP;

  SendInput(Length(k), k[0], SizeOf(TInput));
end;