Скопировать выделенный текст в буфер обмена - PullRequest
5 голосов
/ 20 января 2012

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

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

WindowsXP / Windows Vista / 7

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

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

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

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

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

и т.д.

1 Ответ

3 голосов
/ 20 января 2012

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

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


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

...