日期:2008-08-07  浏览次数:20880 次

IE里的探索之向标准上下文相关菜单里添加条目
(作者:青苹果工作室编译 2001年02月08日 13:28)


  本文描述在Microsoft Internet Explorer中执行URL指定的脚本时,如何向它的标准上下文相关菜单中添加菜单项。

  如果你想向 Internet Explorer 的标准上下文相关菜单中添加菜单项,那么你应该熟悉注册表以及上下文相关菜单。有关上下文相关菜单的详细内容,可以参阅 SDK 中关于 Windows Shell API 的文档。 这里讨论的实现方式对 Internet Explorer 4.0 以上版本有效,Internet Explorer的早期版本不支持这个功能。

实现步骤
  按以下步骤在 Internet Explorer 的标准上下文相关菜单中添加菜单项:

  1. 在指定位置:

  HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt

  以你希望在上下文相关菜单中显示的文本创建新键。

  结果类似于:

  HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\<Menu Text>

  以你希望在上下文相关菜单中显示的文本替换<Menu Text>。键名中可以包含字符 (&), 它后面的字符将被加上下划线,并作为快捷键。

  2. 把键值设置为指向一个网页的 URL,该页应包含你希望菜单项执行的脚本。此脚本能从对象 external 的属性 menuArgument 中获得上级 window 对象和执行此菜单项的屏幕。

  3. 可选。在以下位置:

  HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\<Menu Text>

  创建一个二进制值,Context。

  结果类似于:

  HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\<Menu Text>\Contexts

  设置 Contexts 的值以指明在标准的上下文相关菜单中,你的菜单项应该出现在哪些上下文里,这里我们使用由以下值按逻辑或运算所组成的掩码:

  上下文 = 值

  默认 = 0x1

  图形 = 0x2

  控件 = 0x4

  表格 = 0x8

  选中的文本 = 0x10

  锚 = 0x20

  例如,如果你希望在默认的上下文相关菜单里,和在上下文是选中的文本时,你的菜单项都出现,把 Context 的值设置为 0x11。

  4. 可选。在以下位置:

  HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\<Menu Text>

  创建一个 Dword 值,Flags。

  结果类似于:

  HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\<Menu Text>\Flags

  将 Flags 的值设置为 0x1 会使脚本的运行方式就和通过方法 showModalDialog 调用它时一样。和方法 showModalDialog 不同,脚本可以通过对象 external 的属性 menuArgument 访问上级 window 对象。

  通过以“路径,resource_id”格式所指定的资源的路径和引用标志,我们可以引用保存在资源中的字符串。例如,如果你想引用 Example.dll 中的字符串资源 123,可以使用 "Example.dll, 123"。