PDA

Показать полную графическую версию : [решено] Как добавить в контекстное меню "Копировать содержимое" блокнота?


denis19
30-09-2019, 02:41
Здравствуйте, подскажите пожалуйста, что вписать в реестр чтоб появилась кнопка контекстного меню "Копировать содержимое" notepad, но не открывая блокнот, а при наведении мыши сверху блокнота?

Petya V4sechkin
30-09-2019, 11:33
denis19, судя по скриншоту, установлена утилита Copy Text Contents - это shell extension, добавляющее соответствующий пункт в контекстное меню Проводника.

denis19
30-09-2019, 15:35
Это я временно установил, она-то работает нормально.
но хочется собственноручно добавить команду. пробовал разные варианты, но при вставке текста в другой блокнот появляются непонятные иероглифы и символы. Вот она, что тут не так? -
HKEY_CLASSES_ROOT\txtfile\shell\CopyToClip
Command
cmd /c clip < "%1"

Iska
30-09-2019, 19:38
denis19, много что не так, причём не «тут». «Тут» будет замечательно работать в большинстве случаев для латиницы, а вот с кириллицей могут быть проблемы. Если содержимое Вашего файла сохранено в кодировке OEM/866 — интерпретатор команд направит его на вход clip.exe, который его корректно прочитает (поскольку именно OEM/866 является умолчальной кодировкой для окна консоли интерпретатора команд). Если же содержимое Вашего файла сохранено в любой иной кодировке, отличной от OEM/866 (ANSI/1251, UTF-8/65001, UTF-16LE/1200, KOI8-R/20866 и т.п.) — результатом исполнения команды окажутся, как Вы пишете — «непонятные иероглифы и символы» в буфере обмена.

denis19
08-10-2019, 19:13
У меня в AkelPad вроде получилось, там большой выбор "Сохранить как...", но потом опять что-то не так, эти символы то есть то нет.

Iska
08-10-2019, 19:51
denis19, сие не зависит от того, в какой кодировке Вы будете сохранять пакетный файл. Тут только один вариант — пойти, например, на GitHub - FarGroup/FarManager: File and Archive Manager (https://github.com/FarGroup/FarManager), взять оттуда часть кода из просмотрщика и редактора, отвечающего за попытки автоопределения кодировки для кириллицы (что касается OEM/866, ANSI/1251 и всяческого юникода без BOM), и написать свою утилиту на любом знакомом языке, которая будет читать выбранный файл, задействовать указанную логику для определения, переоткрывать файл в корректной кодировке (для правильного чтения кириллицы), читать и копировать в буфер обмена его содержимое.

Либо попытаться найти уже готовую таковую утилиту и задействовать её.

denis19
09-10-2019, 21:11
Не, ничего там не понял, спасибо. :dont-know

Iska
09-10-2019, 21:53
denis19, специально для Вас:

Загружаете и устанавливаете AkelPad (Редактор AkelPad (http://akelpad.sourceforge.net/ru/)) соответствующей разрядности в каталог по умолчанию (%ProgramFiles%\AkelPad).
Импортируете в реестр следующий файл реестра:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\txtfile\shell\CopyContent2Clipboard]
@="Копировать содержимое"

[HKEY_CLASSES_ROOT\txtfile\shell\CopyContent2Clipboard\command]
@=hex(2):22,00,25,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,69,00,6c,\
00,65,00,73,00,25,00,5c,00,41,00,6b,00,65,00,6c,00,50,00,61,00,64,00,5c,00,\
41,00,6b,00,65,00,6c,00,50,00,61,00,64,00,2e,00,65,00,78,00,65,00,22,00,20,\
00,2f,00,4f,00,70,00,65,00,6e,00,46,00,69,00,6c,00,65,00,28,00,22,00,25,00,\
31,00,22,00,29,00,20,00,2f,00,43,00,6f,00,6d,00,6d,00,61,00,6e,00,64,00,28,\
00,34,00,31,00,35,00,37,00,29,00,20,00,2f,00,43,00,6f,00,6d,00,6d,00,61,00,\
6e,00,64,00,28,00,34,00,31,00,35,00,34,00,29,00,20,00,2f,00,51,00,75,00,69,\
00,74,00,00,00

который соответствует следующей командной строке:
"%ProgramFiles%\AkelPad\AkelPad.exe" /OpenFile("%1") /Command(4157) /Command(4154) /Quit
— исполнить AkelPad.exe, открыть в нём файл (для которого было вызвано контекстное меню) с автоопределением кодировки, выполнить внутренние команды «Выделить всё» и «Копировать», затем закрыть приложение.
Пользуете.

Проблемы с автопределением кодировки наблюдаются только на очень коротких файлах.

denis19
10-10-2019, 00:04
Сейчас вставил новый файл в реестр, кнопка "копировать содержимое" вроде появилась.
Но когда сделал AkelPad по умолчанию, кнопка "копировать содержимое" исчезла.
Вернул notepad.exe по умолчанию, кнопка опять появилась.
А ещё вот по этому адресу делал, там кнопка не исчезает, но всё с теми же с символами.
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AllFilesystemObjects\shell\Clipboard

Iska
10-10-2019, 05:23
Но когда сделал AkelPad по умолчанию, кнопка "копировать содержимое" исчезла. »
Зачем? Разве у меня было что-нибудь написано про:
сделал AkelPad по умолчанию »
?! Вы понимаете, что происходит при этом?

А ещё вот по этому адресу делал, там кнопка не исчезает, но всё с теми же с символами.
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AllFilesystemObjects\shell\Clipboard »
И какое текстовое содержимое Вы собрались получать от тех же папок?!

Если уж Вы действительно захотели привязать команду ко всем файлам — делайте это правильно (Registering Shell Extension Handlers - Windows applications | Microsoft Docs (https://docs.microsoft.com/en-us/windows/win32/shell/reg-shell-exts)), например:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\CopyContent2Clipboard2]
@="Копировать содержимое2"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\CopyContent2Clipboard2\command]
@=hex(2):22,00,25,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,69,00,6c,\
00,65,00,73,00,25,00,5c,00,41,00,6b,00,65,00,6c,00,50,00,61,00,64,00,5c,00,\
41,00,6b,00,65,00,6c,00,50,00,61,00,64,00,2e,00,65,00,78,00,65,00,22,00,20,\
00,2f,00,4f,00,70,00,65,00,6e,00,46,00,69,00,6c,00,65,00,28,00,22,00,25,00,\
31,00,22,00,29,00,20,00,2f,00,43,00,6f,00,6d,00,6d,00,61,00,6e,00,64,00,28,\
00,34,00,31,00,35,00,37,00,29,00,20,00,2f,00,43,00,6f,00,6d,00,6d,00,61,00,\
6e,00,64,00,28,00,34,00,31,00,35,00,34,00,29,00,20,00,2f,00,51,00,75,00,69,\
00,74,00,00,00




© OSzone.net 2001-2012