Krot66

Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Слепил скрипт Autohotkey, расширяющий возможности CLCL. 1. Скрипт использует вставку текста средствами Autohotkey, а не самой CLCL. Это позволяет работать с окнами программ, не поддерживающих простую вставку, а так же с некоторыми (необязательно старыми) программами, использование CLCL c которыми вызывает их падение (Ctrl+V Autohotkey отрабатывает гораздо нежнее, чем это делает CLCL). Можно прописать исполняемые файлы программ, в окна которых посылается "медленное, но верное" Send или SendInput (вставка растров и файлов всегда осуществляется обычным путем). Для настройки необходимо зайти в Options - Keys и назначить на вставку сочетание Ctrl+Alt+0 вместо стандартного Ctrl+V (задержку можно за ненадобностью обнулить). Делать это следует до запуска скрипта! 2. Эта подмена резко расширяет возможности программы: вместо неизменяемых фрагментов в шаблоны программы становится возможным вписать сложные "думающие" заготовки и навороченную обработку выделенного текста (горячие клавиши шаблонам назначаются из контекстного меню вьювера). Так %clipboard% будет заменено текущим текстовым буфером обмена, %sel_text% - выделенным текстом (возможно использование только одной из этих переменных), %date% и %time% - настраиваемыми значениями текущих даты и времени. 3. Помимо этого, любой (в том числе и многострочный) фрагмент шаблона, заключенный в скобки вида вида "<@ ... @>" будет рассматриваться как скрипт Autohotkey, и будет заменен значением переменной out, в нем явно определяемой (например, <@ StringUpper, out, sel_text @> будет преобразовывать выделенный текст в верхний регистр и т.д.). Возможно использование вышеперечисленных переменных и любых функций, находящихся в локальной, пользовательской или стандартной библиотеках. Работает это через генерацию "виртуальных" скриптов вида temp_n.ahk (где n - номер вычисляемого фрагмента) в каталоге основного скрипта, и возникающие ошибки будут относиться к ним же. Можно отключить их автоматическое удаление в настройках и посмотреть что к чему. 4. Нажатие средней кнопки мыши, Ctrl или Alt в открытом меню программы изменяет текущий буфер обмена без его вставки. Это позволяет применять шаблоны к скопированному ранее тексту. Ниже в скрипте описано как настроить автоматический вызов меню шаблонов после этого. 5. Если после такого копирования текста в течении 10 секунд, до изменения буфера или вставки, будет использован шаблон, переменные sel_text в нем будут заменены на clipboard, так что писать отдельные шаблоны для обработки выделенного текста и старых значений буфера нет необходимости. В течении этого времени индикация буфера обмена (смотри ниже) не будет убираться автоматически. 6. Скрипт отображает первые непустые строки изменившегося текстового буфера обмена во всплывающем окне над панелью задач (как в CopyQ). Вид и время показа настраиваются, в полноэкранном режиме и настраиваемых приложениях показ выключается автоматически. 7. Имеет смысл отметить в настройках программы (Options - History) пункт Except from Template - это уменьшит появление лишних пунктов в истории. Скрипт |