【发布时间】:2011-08-23 09:45:02
【问题描述】:
我有一个用 c# (WPF) 编写的 Windows 桌面应用程序,它基本上是一个呼叫中心的问题管理应用程序。它管理(添加、编辑、删除……)客户问题(数据库中的记录),其中每个问题都有许多字段(文本框、文本区域、复选框……) 生成问题时,用户经常将数据从其他资源复制/粘贴到此应用程序和其他应用程序(excel、记事本、浏览器...),并拥有一个充满有价值数据的 Windows 剪贴板。
我不知道如何解决的问题是: 用户在该程序的任何文本字段(例如文本框)中选择一个随机文本,并复制数据。但此数据无法复制到经典 windows 剪贴板
Clipboard.SetText(Textbox1.Text);
因为剪贴板已经有宝贵的数据,不能丢失。 所以我想创建第二个剪贴板来监听所有键盘输入。每当按下某个组合键时,它就会从任何应用程序(记事本、excel、我的程序……)中读取选定的文本(只需要文本)。 与其他组合键类似,它将复制的文本粘贴到任何应用程序(记事本、excel、..)
Windows 已经通过快捷键 CTRL+C 和 CTRL+V 提供了该功能,它们适用于任何不覆盖这些快捷键的应用程序。 我想为我的自定义剪贴板应用程序/服务使用不同的快捷方式。但我不知道如何获取数据并将其粘贴到任何 Windows 应用程序中的任何文本字段。 简而言之,我需要类似的东西:
string clipboardData;
public void OnSpecialCopyShortcutPressed() {
clipboardData = SelectedTextAnywhereInWindowsOrAnyWindowsApp.Text;
}
public void OnSpecialPasteShortcutPressed() {
focusedTextFieldAnywhereInWindowsOrAnyWindowsApp.Text = clipboardData;
}
基本上我想要两个 Windows 剪贴板。
任何指针都会很棒。 谢谢。
--- 编辑---
找到了连接到此处按下的键的解决方案global keyboard hook 仍在寻找一种方法来“连接”到活动的应用程序和选定的文本以进行复制,并寻找一种用于粘贴复制文本的集中控件。
【问题讨论】:
-
没有人会知道如何使用您的提议。另一方面,每个人都了解剪贴板。为什么不直接使用能够记住剪贴板中项目历史记录的众多剪贴板应用之一。
-
我向我的客户提出了同样的建议(一个可以记住复制到剪贴板的项目历史记录的应用程序),但他坚持要有两个剪贴板。使用起来相当简单,只是复制和粘贴的键与普通键盘不同。
-
你的客户错了,但客户永远是对的!
-
哈哈,有客户的好人是错的,但总是对的。我在窗口应用程序中推送数据的“后端窗口”开发方面没有太多经验。但是是的,我认为,在各种 Windows 应用程序中粘贴数据非常困难,除非这些应用程序是以这种方式设计的。这就是为什么我寻求帮助和其他意见。感谢您的回复
标签: c# wpf copy clipboard paste