Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 7 (http://forum.oszone.net/forumdisplay.php?f=95)
-   -   [решено] Как добавить в контекстное меню "Копировать содержимое" блокнота? (http://forum.oszone.net/showthread.php?t=342381)

denis19 30-09-2019 02:41 2890141

Как добавить в контекстное меню "Копировать содержимое" блокнота?
 
Вложений: 1
Здравствуйте, подскажите пожалуйста, что вписать в реестр чтоб появилась кнопка контекстного меню "Копировать содержимое" notepad, но не открывая блокнот, а при наведении мыши сверху блокнота?

Petya V4sechkin 30-09-2019 11:33 2890184

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

denis19 30-09-2019 15:35 2890239

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

Iska 30-09-2019 19:38 2890275

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 2891249

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

Iska 08-10-2019 19:51 2891258

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

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

denis19 09-10-2019 21:11 2891393

Не, ничего там не понял, спасибо. :dont-know

Iska 09-10-2019 21:53 2891395

denis19, специально для Вас:
  1. Загружаете и устанавливаете AkelPad (Редактор AkelPad) соответствующей разрядности в каталог по умолчанию (%ProgramFiles%\AkelPad).
  2. Импортируете в реестр следующий файл реестра:
    Скрытый текст
    Код:

    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, открыть в нём файл (для которого было вызвано контекстное меню) с автоопределением кодировки, выполнить внутренние команды «Выделить всё» и «Копировать», затем закрыть приложение.
  3. Пользуете.
Проблемы с автопределением кодировки наблюдаются только на очень коротких файлах.

denis19 10-10-2019 00:04 2891400

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

Iska 10-10-2019 05:23 2891407

Цитата:

Цитата denis19
Но когда сделал AkelPad по умолчанию, кнопка "копировать содержимое" исчезла. »

Зачем? Разве у меня было что-нибудь написано про:
Цитата:

Цитата denis19
сделал AkelPad по умолчанию »

?! Вы понимаете, что происходит при этом?

Цитата:

Цитата denis19
А ещё вот по этому адресу делал, там кнопка не исчезает, но всё с теми же с символами.
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AllFilesystemObjects\shell\Clipboard »

И какое текстовое содержимое Вы собрались получать от тех же папок?!

Если уж Вы действительно захотели привязать команду ко всем файлам — делайте это правильно (Registering Shell Extension Handlers - Windows applications | Microsoft Docs), например:
Скрытый текст
Код:

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



Время: 23:25.

Время: 23:25.
© OSzone.net 2001-