我的系统是 Windows 7 Home Basic(64 位)和 Internet Explorer 11。我的电脑是 Dell Inspiron 5520,配备 Core i5 Intel CPU。
当您在 Internet Explorer 中选择一些文本(例如一个句子或一个单词)并右键单击鼠标时,您可以选择将所选项目直接发送到 Microsoft OneNote。对吗?如何将相同的选定文本直接发送到记事本、写字板甚至 Microsoft Word?如何将该选项也添加到鼠标右键单击后出现的下拉菜单中?
答案1
我认为没有办法修改菜单来做你想做的事情。但你应该能够使用复制和粘贴来实现相同的结果。确保目标应用程序已打开,然后在 IE 中突出显示单词、短语、图片或其他内容。您可以右键单击并选择“复制”,或者只需使用 Ctrl-C 将内容放到剪贴板上。然后使用 Alt-Tab 或单击工具栏切换到目标应用程序,并使用 Ctrl-V 或右键单击并“粘贴”来粘贴内容。
答案2
这可以通过附加组件/插件或通过编辑注册表和编写简单脚本来完成。
警告错误地编辑注册表可能会破坏您的操作系统,最坏的情况是强制完全恢复。不要在这里乱搞,一定要考虑在继续之前创建一个系统还原点。此外,此方法会将选择复制到键盘,但实际上不会为您粘贴。
- 也就是说,点击开始按钮并输入 regedit,然后启动该应用程序。
- 浏览到 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\ 如果 MenuExt 应该已经存在,因为您已经有 Onenote 扩展,但我必须创建我的(新密钥)。
- 然后在 MenuExt 键中,创建另一个新键,其名称为您要在右键菜单中显示的名称,即“导出到 Word”。
- 在此创建一个名为“Contexts”的键,并将(默认)数据设置为 0x10。这将指示选项仅在您右键单击突出显示的内容时显示。
- 创建另一个名为“Flags”的键并将(默认)数据设置为 0x1。这将允许脚本访问您选择的数据。
- 接下来我们需要制作一个脚本来指向我们的菜单,我创建了一个名为 c:\Users\username\Documents\simple.htm 的文件
- 在此示例中,我将“导出到 Word”的默认值设置为“file://C:\Users\username\Documents\simple.htm”
- 据我发现,记事本、写字板和 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 不起作用,而且 ie 不允许我们访问 WScript 对象,因此我们可以休眠 100 毫秒左右。