Показать полную графическую версию : [решено] Как добавить в контекстное меню "Копировать содержимое" блокнота?
Здравствуйте, подскажите пожалуйста, что вписать в реестр чтоб появилась кнопка контекстного меню "Копировать содержимое" notepad, но не открывая блокнот, а при наведении мыши сверху блокнота?
Petya V4sechkin
30-09-2019, 11:33
denis19, судя по скриншоту, установлена утилита Copy Text Contents - это shell extension, добавляющее соответствующий пункт в контекстное меню Проводника.
Это я временно установил, она-то работает нормально.
но хочется собственноручно добавить команду. пробовал разные варианты, но при вставке текста в другой блокнот появляются непонятные иероглифы и символы. Вот она, что тут не так? -
HKEY_CLASSES_ROOT\txtfile\shell\CopyToClip
Command
cmd /c clip < "%1"
denis19, много что не так, причём не «тут». «Тут» будет замечательно работать в большинстве случаев для латиницы, а вот с кириллицей могут быть проблемы. Если содержимое Вашего файла сохранено в кодировке OEM/866 — интерпретатор команд направит его на вход clip.exe, который его корректно прочитает (поскольку именно OEM/866 является умолчальной кодировкой для окна консоли интерпретатора команд). Если же содержимое Вашего файла сохранено в любой иной кодировке, отличной от OEM/866 (ANSI/1251, UTF-8/65001, UTF-16LE/1200, KOI8-R/20866 и т.п.) — результатом исполнения команды окажутся, как Вы пишете — «непонятные иероглифы и символы» в буфере обмена.
У меня в AkelPad вроде получилось, там большой выбор "Сохранить как...", но потом опять что-то не так, эти символы то есть то нет.
denis19, сие не зависит от того, в какой кодировке Вы будете сохранять пакетный файл. Тут только один вариант — пойти, например, на GitHub - FarGroup/FarManager: File and Archive Manager (https://github.com/FarGroup/FarManager), взять оттуда часть кода из просмотрщика и редактора, отвечающего за попытки автоопределения кодировки для кириллицы (что касается OEM/866, ANSI/1251 и всяческого юникода без BOM), и написать свою утилиту на любом знакомом языке, которая будет читать выбранный файл, задействовать указанную логику для определения, переоткрывать файл в корректной кодировке (для правильного чтения кириллицы), читать и копировать в буфер обмена его содержимое.
Либо попытаться найти уже готовую таковую утилиту и задействовать её.
Не, ничего там не понял, спасибо. :dont-know
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, открыть в нём файл (для которого было вызвано контекстное меню) с автоопределением кодировки, выполнить внутренние команды «Выделить всё» и «Копировать», затем закрыть приложение.
Пользуете.
Проблемы с автопределением кодировки наблюдаются только на очень коротких файлах.
Сейчас вставил новый файл в реестр, кнопка "копировать содержимое" вроде появилась.
Но когда сделал AkelPad по умолчанию, кнопка "копировать содержимое" исчезла.
Вернул notepad.exe по умолчанию, кнопка опять появилась.
А ещё вот по этому адресу делал, там кнопка не исчезает, но всё с теми же с символами.
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AllFilesystemObjects\shell\Clipboard
Но когда сделал 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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC