我有一个emoji picker Electron app。
假设用户已经打开了这个Electron应用程序,并让它在后台运行。
他们当前正在外部应用中键入文本(文本光标 Flink ),例如在TextEdit或浏览器的文本字段中。
然后他们按下全局键盘热键,这使我的表情符号选择器Electron应用程序成为焦点。
1.如何设置我的应用程序的位置,以匹配他们的文本光标在外部应用程序中的位置?
1.当用户选择一个表情符号时,我希望我的应用将表情符号写入用户的文本光标(而不是鼠标指针)在他们关注我的应用之前所在的位置。
我该怎么做?
(E.g.我希望它像Mac上的Control + Command + Space一样工作。screen.getCursorScreenPoint()
似乎只提供mouse cursor position。
P.S.如果答案要求我的应用程序使用用户的剪贴板,我想首先保存用户剪贴板中的任何内容的备份,然后在粘贴表情符号后恢复剪贴板内容。
没有真实的答案的老问题:
1条答案
按热度按时间z9ju0rcb1#
我不认为Electron本身提供了在外部应用程序中直接访问文本光标位置的功能。
一个可能的解决方法是使用本机模块或外部脚本(如Python,适用于macOS的AppleScript等)从系统中获取文本光标位置。但是.这种方法在不同的应用程序和操作系统中可能不可靠或不一致。
在外部应用程序中直接控制文本光标也是如此:这超出了Electron的能力范围。
一个实用的方法是使用剪贴板:
您可以使用Node.js包,例如
robotjs
用于模拟键盘事件,clipboardy
用于剪贴板操作。字符串
折衷的办法是,由于Electron功能的限制,您无法将应用程序精确定位在文本光标附近。