【问题标题】:Bring up the emoji panel from Delphi code从 Delphi 代码调出 emoji 面板
【发布时间】:2021-01-18 21:40:24
【问题描述】:

我想通过单击速度按钮调出 TEdit/TMemo 的 Windows 10 表情符号面板。可以通过模拟Win+来完成。组合键,但我不确定如何模拟 windows 键。

表情符号面板如下所示。

建议?

【问题讨论】:

标签: delphi emoji


【解决方案1】:

这似乎有效

  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

照此执行(根据 Remy 的建议)

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;

但如果有更好的建议……

【讨论】:

  • 不要使用keybd_event(),它早已被弃用。请改用SendInput()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多