Esto se puede hacer a través de un complemento / complemento o mediante la edición del registro y la escritura de un script simple.
advertencia La edición incorrecta del registro puede destruir su sistema operativo, forzando en el peor de los casos una restauración completa. No se meta aquí y definitivamente considere hacer un punto de restauración del sistema antes de continuar. Además, este método copiará la selección en el teclado, pero en realidad no la pegará por ti.
- Dicho esto, pulse el botón de inicio y escriba regedit, y ejecute el
la aplicación
- Vaya a HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ MenuExt \
Si MenuExt ya debería existir para ti porque ya tienes la extensión Onenote, pero tuve que crear la mía (Nueva clave).
- Luego, en la tecla MenuExt, cree otra clave nueva con el nombre que desea mostrar en el menú del botón derecho, es decir, "Exportar a Word".
- Cree una clave en este llamado "Contextos" y establezca los datos (predeterminados) en 0x10. Esto le indica a la opción que solo se muestre cuando haya hecho clic derecho en el contenido resaltado.
- Cree otra clave llamada "Indicadores" y establezca los datos (predeterminados) en 0x1. Esto permitirá que el script acceda a los datos seleccionados.
- A continuación, vamos a necesitar hacer un script para señalar nuestro menú, hice un archivo llamado c: \ Users \ username \ Documents \ simple.htm
- En este ejemplo, establecería el valor predeterminado de "Exportar a Word" a "archivo: // C: \ Usuarios \ nombre de usuario \ Documentos \ simple.htm"
- Hasta donde he encontrado el bloc de notas, el wordpad y word no tienen un método para aceptar el ingreso de texto directo, solo archivos. Por lo tanto, para evitar intentar que este script escriba archivos temporales, podemos probar un método de copiar y pegar.
simple.htm debería verse así
<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>
Y aquí es donde me quedo atascado. Puede presionar ctrl + v y pegar su selección en la ventana abierta, pero por lo que he leído a sendkeys le gusta un retraso, pero setTimeout no funciona y es decir, no nos da acceso al objeto WScript para que podamos dormir durante 100 ms o menos.