• Администрация SafeZone приветствует вас на нашем форуме!
    Если вы больше не желаете видеть рекламу при просмотре тем и сообщений - то достаточно просто зарегистрироваться. Для зарегистрированных пользователей реклама не отображается.

Работа с выделенным текстом

Кирилл

Команда форума
Администратор
Сообщения
13,341
Симпатии
5,883
#1
Привет!
Не знаю угадал ли с разделом,но это точно не из bat.
Необходимо понять,как можно работать с выделенным текстом на скриптовом языке - копировать,отправить и т.д.
Читал описание некоторых функций,типа GetWindowText или там уже было С+ а это не подходит и т.д.
Возможно (?) power cshell справится.

В общем как то так...
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
5,677
Симпатии
5,572
#3
Ну допустим, API-фукнции я могу тебя научить вызывать и из скриптов. Даже писал функцию для удобной авторегистрации DynWrapX в системе. Выложу потом.

Большую проблему составляет добавление своего пункта контекстного меню в браузер.
Для каждого это делается по-своему. А ведь активацию пункта еще и должна предполагать вызов внешнего скрипта.

У меня есть одна идея, но это не совсем твой и мой уровень. Продолжу по теме, когда у меня будет больше информации.
 

Кирилл

Команда форума
Администратор
Сообщения
13,341
Симпатии
5,883
#4
Большую проблему составляет добавление своего пункта контекстного меню в браузер.
Для каждого это делается по-своему. А ведь активацию пункта еще и должна предполагать вызов внешнего скрипта.
Да,я об этом знаю - тоже в свое время голову ломал,делал простенькие плагины поиска по форуму для хрома.
Но сейчас речь не о браузере,мне нужно доделать твик поиска из контексного меню проводника.
Не хватает возможности поместить в буфер обмена текст,который потом будет отсылаться поисковикам на запрос.

То бишь работать с выделенным текстом...

Ну допустим, API-фукнции я могу тебя научить вызывать и из скриптов. Даже писал функцию для удобной авторегистрации DynWrapX в системе. Выложу потом.
Ок.
 
Последнее редактирование:

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
5,677
Симпатии
5,572
#5
Какой в проводнике выделенный текст?
 

Кирилл

Команда форума
Администратор
Сообщения
13,341
Симпатии
5,883
#6
пример:
открыт текстовый файл,либо любой другой файл в текстовом редакторе.
мне нужно часть текста отправить в поиск.
для этого как понимаю его необходимо пкм мышкой выделить.
например md5 из xml ,или имя файла.
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
5,677
Симпатии
5,572
#7
Понятно.
Как и говорил, решение будет нескоро.
 
Последнее редактирование:

vavun

Активный пользователь
Сообщения
117
Симпатии
50
#8
открыт текстовый файл,либо любой другой файл в текстовом редакторе.
мне нужно часть текста отправить в поиск.
У разных текстовых редакторов может быть свое меню, разве нет ?

Вопрос: где в реестре находится контекстное меню текста ?


И если оно и правда есть, то почему бы не использовать WshShell.SendKeys("^{С}"); , а далее перенаприавить содержимое буфера ?
Так
VB.NET:
clipboard = CreateObject("HTMLFile").parentWindow.clipboardData.getData("text")
set ShellApp = CreateObject("Shell.Application")
CreateObject("WScript.Shell").Run "explorer ""https://google.ru/search?ie=UTF-8&hl=ru&q=" & clipboard & """"
только я понятия не имею, как прикрутить это к к контекстному меню
 
Последнее редактирование:

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
5,677
Симпатии
5,572
#9
Вопрос: где в реестре находится контекстное меню текста ?
Проблема в том, что - нигде.
За контекстное меню конкретного приложения отвечает код от разработчика этого приложения.
 

shestale

Ассоциация VN/VIP
Преподаватель
Сообщения
9,650
Симпатии
4,951
#10
открыт текстовый файл,либо любой другой файл в текстовом редакторе.
Кирилл, так может просто использовать Lister из Total Commander, а там это делается легко и здесь уже обсуждалось?
п.с.
Кажись Sandor им пользуется постоянно, а я время от времени, т.к. обычный блокнот как-то привычнее и присутствует на всех компах.
Вот если бы эти возможности ты сделал именно для блокнота, тогда было бы очень здорово))

Screenshot_1.jpg
 
Последнее редактирование модератором:

Гимаев Наиль

Активный пользователь
Сообщения
59
Симпатии
98
#12
Koza Nozdri, если я правильно понял, то стоит задача поместить в контекстное меню всех текстовых редакторов пункт меню для того, чтобы что-то сделать с выделенным текстом.
Если это нужно, чтобы просто отправить выделенный в поисковик, то ты пытаешься повторить функцию "Найти в Яндексе" из Punto Swither.
Но я хотел бы обратить внимание твоё внимание на функцию "Показать меню вставки автозамены", это как раз то, что ты хочешь. Эта функция является контекстным меню, работающим с выделенным в данный момент текстом, но вызываемым горящей клавишей.
К сожалению, для того, чтобы повторить такое нужен язык программирования высокого уровня.
Если кто-то захочет взяться за реализацию, то начинать надо с WS_POPUP.
WS_POPUP - это такой стиль окна, когда работающее приложение не отбирает фокус ввода у другого. Это позволяет определить в каком окне сейчас выделен текст.
 

Вложения

  • 47.9 KB Просмотры: 13
  • 45.1 KB Просмотры: 15
Последнее редактирование:

regist

гоняюсь за туманом
Ассоциация VN/VIP
VIP
Разработчик
Сообщения
12,059
Симпатии
5,724
#13
Гимаев Наиль, кстати тоже всё собирался написать. Что чем писать какую-то прогу которая будет интегрироваться в текстовые редакторы лучше сделать прогу, которая постоянно будет висеть в трее и срабатывать по комбинации клавиш. @glax24 писал подобную утилиту для проверки CLSID.
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
5,677
Симпатии
5,572
#14
regist, да, тоже рассматриваю такой вариант. На подобие, как делает Abbyy Lingvo (при клике Ctrl по выделенному тексту - перевод всплывающим окном).
 

Гимаев Наиль

Активный пользователь
Сообщения
59
Симпатии
98
#15
Когда мне нужно было решить подобную задачу (обработка выделенного текста в любой программе), то я написал безоконную программу.
Т.к. программа безоконная, то она не могла отнять фокус у другой программы, т.е. активной оставалась программа с выделенным текстом.
При запуске моя программа эмулировала нажатие Ctrl+C, получала текст из буфера обмена и делала с ним, всё что хотела.
А для того, чтобы она запускалась по нажатию горячей клавиши, я поместил в Пуск ярлык, а в ярлыке прописал горячую клавишу.За основу контекстного меню вызываемого горячей клавишей можно взять http://www.codeproject.com/Articles/32563/Virtual-On-Screen-Keyboard-Example
 

Кирилл

Команда форума
Администратор
Сообщения
13,341
Симпатии
5,883
#16
Гимаев Наиль, большое спасибо за ваши мысли!
Честно,описание в сети скудное - тяжело,особенно если не владеешь программированием в должном уровне.

К сожалению, для того, чтобы повторить такое нужен язык программирования высокого уровня.
Что чем писать какую-то прогу которая будет интегрироваться в текстовые редакторы лучше сделать прогу, которая постоянно будет висеть в трее и срабатывать по комбинации клавиш.
К сожалению простота твика при этом сводится к нулю,как и возможность его модернизации для меня...в таком случае либо придется доводить идею с помощью единомышленников до ума и в свободное плавание,либо отказаться от опции обработки выделенного текста как в основном теле твика.
Есть над чем задуматься,но при этом огромный интерес к данной теме остается.
Некоторые языки в лохматом прошлом еще грыз с горем пополам,так что если не сложно - жду ссылок куда почитать...это сократит количество разрывов моей мозговой ткани...
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
5,677
Симпатии
5,572
#17
Koza Nozdri, как и говорил. Просто не получится.
Продолжай делать остальную часть так, будто эта уже готова,
например, как выглядят запросы к каждой из поисковых систем. Только уже не в этой теме.

Сюда вернусь с помощью как закончу часть своих программ.
Гимаев Наиль, любопытно. Почитал. Спасибо. Как самый простой вариант сгодится.
 
Сверху Снизу