Копировать текст выделенной области в буфер обмена

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

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

WindowsXP / Windows Vista / 7

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

Процесс будет следующим:

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

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

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

и Т. Д.


person Andrew    schedule 20.01.2012    source источник
comment
Просто догадываюсь, это домашнее задание или твое собственное упражнение? Можно задавать домашние вопросы, если вы это укажете.   -  person Abel    schedule 20.01.2012
comment
Вы можете сделать это с помощью чего-то вроде this.   -  person M.Babcock    schedule 20.01.2012


Ответы (1)


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

Хорошее введение с некоторыми с практическими рекомендациями можно найти здесь, в CodeProject.


В случае, когда шаг (4) в вашем вопросе должен автоматически копировать выделенный текст в буфер обмена из стороннего приложения, рассмотрите возможность использования инструмента автоматизации, такого как AutoIt или White Framework вместо этого (подробнее варианты в этом вопросе по автоматизации: Что хорошо, если есть, Библиотека автоматизации .NET для Windows?).

person Abel    schedule 20.01.2012