Приложение для работы с буфером обмена. Позволяет сравнивать тексты из буфера. Отображает картинки

11.03.24

Разработка - Инструментарий разработчика

Часто у вас бывало такое, что хочется сравнить текст двух модулей, но для этого необходимо сделать миллион кликов мышью, придумать, как назвать файлы, найти, куда это сохранить, открыть в программе для сравнения и т.д. Данное решение упрощает работу по сравнению текстов. Для этого слушает и логирует текстовый буфер обмена. Выводит сохраненные в буфер тексты в обратной последовательности в окно приложения. Выводит пользователю содержимое лога буфера обмена текста и картинок в виде HTML-отчета (используется IE). Для сравнения текстов использует две альтернативные команды сравнения (указываются в настройках, я использую totalcmd.exe и kdiff.exe).

Скачать исходный код

Наименование Файл Версия Размер
Архив (исходники программ + бинарники .NET 2.0)
.zip 7,03Mb
0
.zip 11.03.2024 7,03Mb Скачать

Программа состоит из нескольких составляющих

а) Служба sus_loader
а.1) Импортировать в реестр файл sus_loder.reg
а.2) Изменить параметр ImagePath (указать путь до sus_loder.exe)
а.3) Выполнить перезагрузку
а.4) Запустить службу Sus. При этом создается файл настройки сервиса в директории
C:\ProgramData\sus_loader

 

 

а.5) в директории запуска sus_loader должен находиться бинарник quser.exe (через нее определяется ID активной сессии)


 

б) Консольные программы ClipboardAsync.exe (сохраняет содержимое буфера при запуске) 
и EXEC.exe (выполняет чтение команд из базы данных rulelog.db, путь к базе данных получает из константы базы данных TAG.db, путь к TAG.db берет из реестра, описание ниже).

б.1) текущая версия sus_loader имеет ошибку и требует, чтобы в путях вызываемых программ не содержалось пробелов.


 

б.2) При первом запуске ClipboardAsync.exe будет создана директория, для сохранения файлов из буфера обмена.

 

 

в) Оконное приложение Clipviewer.exe (Сворачивается в системный лоток).
Слушает системные вызовы и перехватывает событие изменение буфера обмена картинок и текста ОС windows. Вызывает службу sus_loader.exe.

 

 

в.1) При первом запуске предложит указать пути для новых баз данных. Создает базы данных типа TAG.db (хранит константы) и RULELOG.db (из таблицы EXEC данной базы данных программа EXEC.exe читает команды запуска), пути указываются полностью с названием новых баз.

в.2) Создает файл PARAMS.INI для программы Clipviewer.exe в каталоге ProgramData

 

 

в.3) При первом закрытии программа обновит файл и добавит необходимые константы.

Файл params.ini обновляется текущими параметрами при закрытии формы, при открытии программы происходит инициализация последних сохраненных параметров. По кнопке Update - лог перечитывается.


 

в.3) Для очистки лога необходимо воспользоваться кнопкой clear. Будет создан новый файл и в него сохранится выделение лога.


 

в.4) Примерный текст параметров выглядит следующим образом (начало строки должно содержать имя параметра=<Значение параметра>)

ClipboardDir=c:\Users\All Users\ClypboardAsync\
PathRuleLOG=d:\USR\RULELOG_new2.db
CompareTextCommand=/C ""c:\totalcmd\totalcmd.exe" /S=C  "%1" "%2""
CompareFilesComand=kdiff3.exe "%1" "%2" "%3"
CompareFilesComandWorkPath=c:\Program Files\KDiff3\
ClipDirCount=10

в.5) При первом запуске должны были быть созданы базы данных типа Rulelog.db и TAG.db, 
однако в константы TAG.db не было записано значение константы PathRuleLOG (параметр был пуст).
Поэтому необходимо создать новую базу данных типа TAG.db по кнопке "new".
Сначала необходимо согласиться с диалогом об очистке текущей сохраненной базы RULELOG.db 
(Можно создать новую базу, предварительно изменив параметр в тексте и сохранив его в PARAMS.INI по кнопке Clear)

 

Далее необходимо указать путь к новой базе типа TAG (Значения необходимых констант будет установлено в соответствии Params.INI)


 

При удалении связанных баз и перезапуске программы Clipviewer.exe, базы, по сохраненным путям в логе Params.INI - будут созданы заново. Путь до базы типа TAG.db хранится в реестре. 
Компьютер\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_TAG\PathTagDirTMP


 

в.5) функция обновления лога буфера обмена

 

 

в.6) функция просмотра лога в виде html. Подготавливает текст HTML заменяет #IMG# по тексту на ТЭГ <img source=buffer.png>

 

 

в.7) Функция сравнения текста лога буфера. 
При двойном клике на "номере" лога буфера значение будет установлено в соответствующее поле ввода.
При нажатии на кнопку "cmp" будет выполнена команда сравнения.


 

При нажатии на вторую кнопку "cmp" будет выполнена альтернативная команда сравнения.

 


 

в.8) Функция поиска по тексту (на форме объект типа Scentilla, поиск и замена полностью наследуется из библиотеки Scentilla, выбранная версия библиотеки полностью вшита в пространство имен основного приложения)

 

 

 

Приложение написано на .Net 2.0, вшиты свободно распространяемые компоненты)

P.S. получили обновления следующие мои разработки

//infostart.ru/public/2030230/ Windows приложение для быстрого выполнения бэкапов через ms sql и создание баз через RAS сервер 1С (добавлено сохранение паролей в шифрованном виде в файл настроек, шифрование RSA)

//infostart.ru/public/1964665/ Windows приложение для управления контентом + модуль обмена с интеграционной базой (Добавлено сохранение картинок из буфера обмена, доработано отображение GIF в HTML-форме, модуль обмена: добавлено сохранение паролей в шифрованном виде в файл настроек, шифрование RSA)

//infostart.ru/public/1933675/ Подсистема управления контентом + автономное мобильное приложение (исправлены ошибки, добавлена поддержка HTTPS для мобильного)

 

РАЗВИТИЕ. В дальнейшем планирую связать данную разработку с базой Тэгов,

будет добавлена функция создания тэгов и контента по выбранной вставке буфера.

И кнопка открытия базы данных Тэгов в приложении TagReader(//infostart.ru/public/1964665/) со значениями текущих параметров приложения clipviewer.exe.

 

upd 11/03/2024

1) Добавлен выбор базы данных типа TAG.db

2) Добавлена кнопка "Add content" (в проект добавлены классы TAG, Content, InnerProject)
взяты из текущей версии публикации TagReader.
По кнопке, сохраненное во временную директорию содержимое,
будет добавлено в выбранную базу данных будет добавлен контент с текстовым содержимым,
или контент с ссылкой на временный каталог в качестве source

3) Добавлена кнопка открытия базы из параметра реестра
в параметры программы добавлена чтение/запись параметра "TagReaderPath="

При нажатии на кнопку будет открыта база, сохраненная в реестр по пути 
Компьютер\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_TAG\PathTagDirTMP
4) Демонстрация связки с TagReader.exe

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    127149    689    389    

740

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    8427    25    6    

46

Infostart УДиФ: Управление данными и формами 1С

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    4750    12    2    

38

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2280 руб.

14.01.2013    178952    1085    0    

863

Бустер Конвертации данных 3 (Infostart Toolkit)

Инструментарий разработчика 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

07.10.2021    15123    3    12    

38

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99896    240    97    

298

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28433    4    10    

16

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18528    6    8    

40
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Sam13 342 15.02.24 13:24 Сейчас в теме
Спасибо за труд и оформление задачи. На мой взгляд, как академическая задача - это любопытно.
Как задача для реализации сравнения двух файлов - слишком сложно. ИМХО.
Заводишь папку C:\СравнениеФайлов, там создаешь два файла До.txt и После.txt.
Затем пишешь скрипт для запуска kdiff с зафиксированными именами файлов.
Далее при необходимости сравнения сохраняешь свои тексты в файлы До и После, запускаешь скрипт. Готово
Либо можно реализовать запуск сравнялки в 1С, пример можно посмотреть здесь: //infostart.ru/1c/tools/544800/
Но, повторюсь - это любопытно.
2. user632212 46 15.02.24 14:02 Сейчас в теме
это мой пет-проект, когда то был) тут еще много чего реализовано, можно любой exe запускать в любом сеансе винды.. и просто два клика и еще отображает отчет отображает гифки)))
3. user632212 46 15.02.24 14:13 Сейчас в теме
У меня есть прога //infostart.ru/public/1964665/, придуманная для ведения записей.
Это ее часть, дабы упростить в нее ввод данных. Сейчас в ней тоже надо нажать кучу кнопок чтобы зафиксировать информацию. Иногда просто хочется быстро что-то записать, например во время обновлений полезно, и нужно это только на один раз (возможно) или нашел инфу в интернете, хочется сделать скриншот - определить теги (метки в памяти) и забыть на время. Не вся информация полезна.
Оставьте свое сообщение