Это можно сделать с помощью дополнения / плагина или путем редактирования реестра и написания простого скрипта.
предупреждение Неправильное редактирование реестра может привести к разрушению вашей операционной системы, что в худшем случае приведет к полному восстановлению. Не лезьте сюда и обязательно подумайте о том, чтобы сделать точку восстановления системы, прежде чем продолжить. Также этот метод скопирует выделение на клавиатуру, но фактически не вставит его для вас.
- Тем не менее, нажмите кнопку Пуск и введите regedit, и запустите приложение.
- Перейдите по ссылке HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\ Если MenuExt должен уже существовать для вас, потому что у вас уже есть расширение Onenote, но мне пришлось создать мое (новый ключ).
- Затем в ключе MenuExt создайте еще один новый ключ с именем, которое вы хотите отобразить в меню правой кнопки мыши, т.е. "Экспорт в Word".
- Создайте ключ в этом разделе "Контексты" и установите для данных (по умолчанию) значение 0x10. Это дает возможность показывать только тогда, когда вы щелкнули правой кнопкой мыши на выделенном контенте.
- Создайте еще один ключ с именем "Флаги" и установите для данных (по умолчанию) значение 0x1. Это позволит сценарию получить доступ к выбранным вами данным.
- Затем нам нужно будет создать скрипт для указания нашего меню, я сделал файл с именем c:\ Users\ username\ Documents\ simple.htm
- В этом примере я установил бы значение по умолчанию "Экспорт в Word" в «file://C:\ Users\ username\ Documents\ simple.htm»
- Поскольку я обнаружил, что блокнот, wordpad и word не имеют метода для приема прямого ввода текста, только файлы. Поэтому, чтобы не пытаться заставить этот скрипт записывать временные файлы, мы можем попробовать метод копирования и вставки.
simple.htm должен выглядеть так
<SCRIPT LANGUAGE="JScript">
//find our selected content
var selection = external.menuArguments.document.getSelection();
external.menuArguments.clipboardData.setData("Text", selection.toString());
//create a shell and open wordpad
var WshShell = new ActiveXObject("WScript.Shell");
objExec = WshShell.Exec("notepad.exe");
//give it a second to open then paste
WshShell.AppActivate(objExec.ProcessID);
while (objExec.Status != 0)
{
delayedSendKeys("^V");
}
delayedSendKeys("^V");
//sending keys works better with a delay
function delayedSendKeys(str)
{
WshShell.SendKeys(str);
external.menuArguments.console.log("window","sent keys");
}
</SCRIPT>
И вот тут я застреваю. Вы можете нажать Ctrl + V и вставить свой выбор в открывшемся окне, но из того, что я прочитал, sendkeys любит задержку, но setTimeout не работает и то есть не дает нам доступ к объекту WScript, поэтому мы можем спать на 100 мс или около того.