Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
259 / 200 / 49
Регистрация: 18.12.2015
Сообщений: 416

Копирование выделенного текста с любого приложения

28.04.2018, 11:28. Показов 2643. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Возник вопрос отлова клавиш, копирование текста с любого приложения и в последующей вставке в мою программу.

Если с отловом клавиши все понятно, использую GetAsyncKeyState, то с копированием содержимого в буфер или напрямую в контроль приложения не смог разобраться.
На данный момент использую sendkeys вида ctrl+c и потом обрабатываю буфер.
Есть ли возможность, пусть даже на уровне api, скопировать в буфер/сразу перенести выделенный текст?
Выделение может быть как в и текстовом редакторе, так и просто выделенная ячейка в excel.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.04.2018, 11:28
Ответы с готовыми решениями:

Вставка текста до выделенного текста и после текста
Ребят, помогите решить задачку. Есть RichBox и в нем некий текст. Я выделил часть текста и при нажатии кнопки необходимо до начала...

Копирование выделенного элемента в ListBox в переменную
Нужно скопировать в переменную текст выделенного элемента в лист боксе. Как это сделать?

Вставка текста вокруг выделенного слова в RichTextBox
Узнать начала и конец выделенного слова, символа в RichTextBox и вставить символ до него и после него ?

7
 Аватар для l34ddx
69 / 66 / 23
Регистрация: 23.07.2014
Сообщений: 121
28.04.2018, 12:08
VB.NET
1
My.Computer.clipboard
не устраивает?

отлавливаете нажатие клавиш в программе и считываете данные из клипборда
0
259 / 200 / 49
Регистрация: 18.12.2015
Сообщений: 416
28.04.2018, 12:24  [ТС]
l34ddx, устроило бы, если бы я знал как скопировать с другого приложения в клипборд.
Я наверное не совсем ясно выразился, попробую простыми словами:
Есть приложение, сидит себе в трее или свернуто.
Пользователь выделил, к примеру, в word'е текст и нажал определенную комбинацию клавиш. В этот момент приложение должно перехватить нажатие клавиш, скопировать в буфер обмена выделенную часть текст в word'е и вставить себе в textbox.
0
 Аватар для l34ddx
69 / 66 / 23
Регистрация: 23.07.2014
Сообщений: 121
28.04.2018, 13:39
отслеживаете нажатие комбинации клавиш, и если комбинация нажата то...
VB.NET
1
2
Dim str As String
        str = My.Computer.Clipboard.GetText
Добавлено через 10 минут
ну или сделать проверку на содержимое буфера на наличие текста...
(просто в буфере может быть не только текст, но и какой-то объект типа файла mp3 и т.д...)
VB.NET
1
2
3
4
if my.computer.clipboard.containtext = true then
dim str as tring
str = my.computer.clipboard.gettext
end if
0
1726 / 1583 / 165
Регистрация: 25.07.2015
Сообщений: 2,666
28.04.2018, 13:53
Цитата Сообщение от Jungl Посмотреть сообщение
если бы я знал как скопировать с другого приложения в клипборд
Цитата Сообщение от Jungl Посмотреть сообщение
Пользователь выделил, к примеру, в word'е текст и нажал определенную комбинацию клавиш.
А чем собственно универсальная штатная виндовая комбинация Ctrl+C не устраивает ?
Она отправляет гарантированно текст ,или что вы там выделите, в clipboard.
Отслеживайте её со всеми последующими обработками ...
0
259 / 200 / 49
Регистрация: 18.12.2015
Сообщений: 416
28.04.2018, 14:23  [ТС]
l34ddx, извиняюсь, что не сообщил вам об исключении использования стандартных CTRL+C(см. ниже)

Цитата Сообщение от Kulma Посмотреть сообщение
А чем собственно универсальная штатная виндовая комбинация Ctrl+C не устраивает ?
Например, я хочу использовать не CTRL+C и клавишу, скажем, F3 или комбинацию CTRL + Q.
Дело в том, что после определенной комбинации клавиш, разворачивается приложение и начинаются действия.
Мне не хотелось бы использовать стандартные CTRL+C, т.к. их чаще всего еще использую при обычной рутине.
А то получится, я просто скопировал, а тут еще и приложение вылезло посреди экрана - не очень удобно)
0
1726 / 1583 / 165
Регистрация: 25.07.2015
Сообщений: 2,666
28.04.2018, 14:52
Jungl, в таком случае вам придётся "приучить" все сторонние программы
к нужной вам комбинации копирования в буфер, что на мой взгляд излишне трудоёмко .
Гораздо проще и правильнее, как мне думается , научить вашу программу реагировать на
CTRL+C в определённых программах ...
В качестве размышлений- ваша прога в фоновом режиме отлавливает эту комбинацию , сверяет со списком
прогу , в которой она была использована и решает разёртываться или нет.
0
 Аватар для diadiavova
7259 / 2606 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
01.05.2018, 01:21
Jungl, можно воспользоваться UIAutomation. Нужно подключить библиотеки UIAutomationClient и UIAutomationTypes, далее такая функция будет возвращать выделенный текст.
VB.NET
1
2
Imports System.Text
Imports System.Windows.Automation
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    Function getSelection() As String
        Dim fe = AutomationElement.FocusedElement
        If fe IsNot Nothing Then
            Dim pattern
            If fe.TryGetCurrentPattern(TextPattern.Pattern, pattern) Then
                Dim tp As TextPattern = pattern
                Dim sb As New StringBuilder
                For Each r In tp.GetSelection
                    sb.AppendLine(r.GetText(-1))
                Next
                Return sb.ToString
            End If
        End If
        Return ""
    End Function
Правда работает это не для всех приложений, зато, если вкурить как следует эту библиотеку, то там много чего можно, например отслеживать изменение выделенного, перевод фокуса, изменение текста и прочее.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.05.2018, 01:21
Помогаю со студенческими работами здесь

Изменить шрифт и цвет выделенного текста в RTB
Дорогие ветераны войны и Ваши внуки! Поздравляю ВАС с ДНЕМ ПОБЕДЫ! А теперь по теме: FontDialog1.ShowColor = True ...

Изменение шрифта выделенного фрагмента текста в RichTextBox
Здравствуйте! Мне нужно выделил фрагмент текста и нажал на кнопку и выделенный текст изменился Отдельно если сделать кнопки например...

Извлечение значений выделенного текста (разделить строку на подстроки)
Есть текст, допустим формат rgb вида 255,255,255. Выделяю его мышкой. Как извлечь каждое значение r, g и b? Пробовал регулярные...

Изменить размер шрифта выделенного фрагмента текста в RichTextBox
Цвет выделенного фрагмента текста я меняю так: if (richTextBox.SelectionFont != null) { ...

Вывод текста из любого TextBox, если он заполнен
Есть 4 текстовых поля, в которые вводятся числовые коды. В зависимости от того, какое из них заполнено, вывести MessageBox с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru