它在一个 C++ 翻译程序中。当用户在其他程序中选择一些文本而不按 CTRL-C 时,我想获取突出显示的文本以便我可以翻译它。C# 解决方案受到欢迎,因为 this(文本获取)是一个相对独立的组件。
一种可能的解决方案是向鼠标事件添加挂钩。我检测到以下消息:鼠标拖动左键,然后释放左键。然后我将 CTRL-C 发送到程序并从剪贴板获取文本。
我保存并恢复剪贴板,因此大多数程序都可以很好地使用该方法。但我观察到一些程序会在它们的消息循环中处理 WM_KEYUP 之类的事件。对于这些程序,我发送虚假消息!还有另一种更安全的方法来获取突出显示的文本吗?
我试图找到一些 API 调用来获取两个鼠标光标位置之间的文本,但我找不到一个。