3

我正在尝试将 *.zip 文件添加到上下文菜单中。使用必要参数启动我的 python 脚本。

我添加了注册以下键:

[HKEY_CLASSES_ROOT\WinZip\shell\SSSeracher] "MUIVerb"="SSSearcher Script" "SubCommands"="SSSearcher.Rule1;SSSearcher.Rule2;SSSearcher.Rule3;SSSearcher.Custom;SSSearcher.Config"
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SSSearcher.Rule1] @="Rule #1"
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SSSearcher.Rule1\command] @="C:\\APPS\\python\\Scripts\\sssearcher.py \"%1\" \"1\""
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SSSearcher.Rule2] @="Rule #2"
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SSSearcher.Rule2\command] @="C:\\APPS\\python\\Scripts\\sssearcher.py \"%1\" \"2\""
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SSSearcher.Rule3] @="Rule #3"
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SSSearcher.Rule3\command] @="C:\\APPS\\python\\Scripts\\sssearcher.py \"%1\" \"3\""
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SSSearcher.Custom] @="Custom rule"
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SSSearcher.Custom\command] @="C:\\APPS\\python\\Scripts\\sssearcher.py \"%1\" \"4\""
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SSSearcher.Custom] @="Custom rule"
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SSSearcher.Custom\command] @="C:\\APPS\\python\\Scripts\\sssearcher.py \"%1\" \"4\""
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SSSearcher.Config] @="Config File"
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SSSearcher.Config\command] @="vim C:\\APPS\\python\\Scripts\\sssearcher.pyc"

由于菜单显示点击那些绝对没有。

我一直在关注本教程:http: //msdn.microsoft.com/en-us/library/windows/desktop/hh127467%28v=vs.85%29.aspx

我错过了一些东西,但不幸的是我找不到答案。你能帮我解决这个问题吗?

4

1 回答 1

9

我刚刚按照这些步骤操作,它似乎工作:

1)首先找到.zip下的钥匙HKEY_CLASSES_ROOT

2)选择它并查看其默认值。在我的情况下,默认值为CompressedFolder

在此处输入图像描述

3)现在导航到CompressedFolder\shell(或默认为 .zip 的内容),它也包含在HKEY_CLASSES_ROOT

在此处输入图像描述

4)右键单击外壳并添加一个新密钥,在我的例子中,我添加了一个名为MyCommand. 向该键添加一个子键,称为command. MyCommand将是出现在上下文菜单上的命令的名称。

在此处输入图像描述

5) 接下来编辑 的子键(Deafult)条目的值,添加您希望执行的操作。就我而言,我想打开一个 python 文件,它告诉我有关该文件的详细信息:commandmycommand

这是python脚本:

import os
import sys

def main():
    st = os.stat(sys.argv[1])
    print st
    raw_input()

if __name__ == '__main__':
    main()

它位于 C:\info.py

这是我添加到默认值的条目:

python C:\\info.py %1

在此处输入图像描述

这就是它的全部内容,现在如果您要右键单击一个 zip 文件,您应该会看到您添加的命令:

在此处输入图像描述

单击时给出:

在此处输入图像描述

希望这是你之后的地方。如果您想添加更多命令,那么只需在键下添加更多子shell键,就像我们对MyCommand.

更新 - 级联菜单

a) 为了添加级联菜单,请导航到上述步骤 3 中所述的键。在我的情况下CompressedFolder\shell,它位于 HKEY_CLASSES_ROOT 下。在这里添加一个带有您选择的名称的键,在我的例子中,我使用CascadeMenu. 向此键添加 2 个条目:

  • MUIVerb- 这是将出现在级联菜单的名称。就我而言,我使用过MyCascadeMenu
  • SubCommands- 这是一个分号分隔的命令列表。将命令命名为您喜欢的任何名称,在我的情况下,我使用了python.info. 使用“|” 如果需要分隔符,则在命令之间,例如command1;|;command2

在此处输入图像描述

b) 接下来我们需要告诉 windows 这个命令实际上做了什么。导航:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\Shell

在这里添加一个带有命令名称的键。在我的情况下,密钥被称为python.info. 将键的默认值设置为您希望出现在上下文菜单中的名称。就我而言,我使用过"File Info"

在此处输入图像描述

c) 现在为您的命令添加一个子项,名为command. 将此命令的默认条目更改为您希望执行的命令。就我而言,我已将其设置为python C:\\info.py %1

在此处输入图像描述

d) 我们现在完成了,右键单击 .zip 文件以查看您新创建的上下文菜单:

在此处输入图像描述

于 2013-08-01T11:38:36.810 回答