【问题标题】:Getting selected item in active window在活动窗口中获取所选项目
【发布时间】:2015-11-25 10:54:47
【问题描述】:

我正在使用 C# 开发一个与剪贴板一起使用的应用程序,我想知道是否可以获取用户在当前窗口中选择的内容,无论它是什么窗口(例如可能是 FireFox,记事本等)。

【问题讨论】:

  • 你的意思是选中还是复制到剪贴板?
  • 按 ctrl c 时将被复制到剪贴板的内容。

标签: c# window selection clipboard


【解决方案1】:

我不确定您是否能够为这个问题找到一个通用的解决方案。看看这个链接;

http://www.eggheadcafe.com/software/aspnet/33899121/get-selected-text-of-active-window-.aspx

这篇文章的作者报告说,他们的解决方案在记事本中有效,但在写字板或 Word 中无效。我对这方面了解不多,但我猜这意味着有多种方式可以实现文本选择——即使在 Windows 中也是如此。

我认为这也扩展到了 Control-C,而不仅仅是文本选择。我相信有不同的方式来处理复制命令,这取决于它使用的上下文。

例如,如果您在 Windows 中的对话框上按 Control-C,它将复制文本,而无需您手动选择它。

希望以上链接对您有所帮助。这似乎是一个需要克服的有趣问题。

编辑:

说得太早了——刚刚找到这个链接;

http://social.msdn.microsoft.com/Forums/en/winformsapplications/thread/1dc356e6-9441-44de-9eda-247003fa6ef5

看起来这正是您所追求的 - 希望它有效。

【讨论】:

    【解决方案2】:

    如果仅选择了某些内容,则它不会出现在剪贴板中。但是如果用户复制了他之前选择的某个对象,那么,是的,它将在剪贴板中。

    【讨论】:

    • 是的,但我不希望它必须在剪贴板中。我想知道剪贴板在复制某些内容时知道什么 - 在活动窗口中选择了什么。
    • 我认为,C.McAtackney 给出了一个很好的例子的链接。我想,它可以扩大,以便不仅可以处理文本。如果您想使用 Clipboard 类,它可以通过 Contain... 和 Get... 方法为您提供一些关于它所包含内容的提示。但如果你想知道要复制什么,恐怕对你没有用。
    猜你喜欢
    • 1970-01-01
    • 2023-01-26
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多