在另一个程序中访问选定的文本[重复]

Posted

技术标签:

【中文标题】在另一个程序中访问选定的文本[重复]【英文标题】:Access selected text in another program [duplicate] 【发布时间】:2012-08-20 20:00:06 【问题描述】:

可能重复:How can an app hook into text selection system-wide?

我将创建一个查找程序,它的运行方式可能类似于 Windows Shell 类型的应用程序。在 Outlook 中,我将选择一个 ID 号(文本),我的应用程序需要接受它作为参数来处理它。

如何在全局 (Windows) 范围内访问选定的文本?

我的解决方法可能是执行复制操作,然后读取剪贴板的内容。但如果可能的话,我想保持免费。

【问题讨论】:

How can an app hook into text selection system-wide? 的可能副本另请参阅:***.com/questions/9606041 和 ***.com/questions/7509483 “执行复制操作”没有用户启动它是一个非常非常糟糕的主意.. 怎么回事?它是文本,而不是与安全相关的密钥等。有很多应用程序可以访问其他应用程序中的数据。我想你能扩展一下吗? @ikathegreat- 在没有用户启动的情况下执行“复制”不是一个好主意的原因是用户不期望它并且不知道它正在发生。如果用户在剪贴板上存储了一些东西,那么您的应用程序启动的副本会默默地丢弃用户的数据(这绝不是一件好事)。用户希望始终完全控制剪贴板。 @bta 很公平。这我发现与 Outlook 的创建新联系人操作有冲突...有谁知道所选文本是否可以通过附加组件 (VBA) 访问? 【参考方案1】:

在此线程中查看解决方案:Copy Selected Text from any window

基本上,您需要使用 PInovoke 从活动窗口中获取选定的文本。此外,您可以设置 Windows 键绑定来运行您的应用程序并触发操作。这种方法的额外好处是适用于所有应用程序,而不仅仅是 Outlook。

【讨论】:

【参考方案2】:
    你可以使用spy++在你想获取ID的控件上设置一个目标
      使用 API 窗口[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount); 它允许您从控件(文本框或其他标题)中获取文本

【讨论】:

会碰巧有一个关于如何做到这一点的例子吗?我的目标应用程序是 Outlook 2010,我需要在那里获取选定的文本。

以上是关于在另一个程序中访问选定的文本[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在javascript中获取选定文本的值[重复]

UIImageView 重复显示在另一个单元格中

如何在单击角度7中的按钮时获取下拉列表的选定值和选定文本[重复]

在选定 Excel 列的单元格中查找并突出显示重复的单元格和文本字符串

如何在另一个文本输入中获取选定的文本。出现错误“'ScreenManager' 对象没有属性 'widget_1'”

使用纯Javascript获取选定的下拉值[重复]