2012-01-20 2 views
5

Я довольно новичок в C# и программировании в целом. мне интересно, если есть способ реализовать следующую функцию:Скопировать текст выбранной области в буфер обмена

  1. в моей C# программы имеют textbox (названный tb1) и button (названный bt1).
  2. Когда я нажимаю bt1, мой курсор изменится на «селектор»
  3. я перейти на программу, где мне нужно значение берется из
  4. Я выбираю текст, который мне нужно скопировать в моей программе C#
  5. Выделенный текст будет отображаться в bt1

WindowsXP/Windows Vista/7

PS - Я знаю, как получить текст из буфера обмена и, как установить текст в буфер обмена, белый мне нужен способ захвата ЛЮБОГО текста ПОСЛЕ того, как я нажимаю кнопку. Например, у меня есть 10 текстовых полей; в каждом текстовом поле есть кнопка.

Процесс будет:

  1. button1 нажмите -> выберите текст в другом приложении -> которая автоматически приклеивается к TextBox1

  2. button2 нажмите -> выберите текст в другом приложении -> которая автоматически приклеивается к TextBox2

  3. Button3 нажмите -> выберите текст в другом приложении -> которая автоматически приклеивается к textbox3

т.д.

+0

Просто гадать, но это домашнее задание или ваше собственное упражнение? Вполне нормально задавать домашние вопросы, если вы это укажете. – Abel

+0

Вы можете сделать это с помощью чего-то вроде [этого] (http://www.codeproject.com/KB/dotnet/wfspy.aspx). –

ответ

3

Вы не указать, может ли пользователь нажмите Ctrl-C на стадии (4), когда внутри этого другого приложения. Если это так, выбранный текст действительно может появиться в вашем приложении: все, что вам нужно сделать, это чтение объекта Clipboard, как в Clipboard.GetText().

хорошее введение с некоторыми how-to's can be found here at CodeProject.


В случае, когда стадия (4) в вашем вопросе должен автоматически копировать выделенный текст в буфер обмена из иностранного приложения, рассмотрим с помощью автоматизации-инструмент, как AutoIt или the White Framework вместо (больше вариантов в этом вопросе по автоматизации: What's a good, if any, .NET Windows automation library?).