我创建了一个应用程序来帮助维护在办公室周围使用的文件夹/文件路径格式。当exe最初以管理员模式运行时,应用程序将注册表实体添加到HKEY_CLASSES_ROOT\AllFileSystemObjects\shell\PathStructure
路径,将子项添加到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\
,其中 PathStructure 是应用程序的名称和子项以PathStructure.*
为键,*替换为命令名。
在浏览Windows资源管理器时,这完全正常,命令按预期工作。但是,在导航打开或保存对话框时,仅显示根菜单项路径结构,子菜单不会在非Microsoft应用程序中级联。总是有效的子菜单的一个很好的例子是发送到菜单项,它在我测试的每个对话框中正确级联。
以下是子项注册表实体(来自CommandStore)的示例:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\PathStructure.Add.All]
"MUIVerb"="Create All main folders"
"icon"="%windir%\\system32\\shell32.dll,278"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\PathStructure.Add.All\command]
@="\"\\\\{Network Path}\\Path Structure Maintenance.exe\" -addall \"%1\""
这是主节点的注册表实体:
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\PathStructure]
"MUIVerb"="Path Structure"
"SubCommands"="PathStructure.Open;PathStructure.Add;PathStructure.Format;PathStructure.Audit;PathStructure.Clipboard;PathStructure.TransferByExtension;PathStructure.Preview;"
"icon"="%windir%\\system32\\imageres.dll,153"
我是否遗漏了任何可以让我通过对话框访问子菜单的参数?我的子项是否在注册表的错误部分?或者我最好开发一个Context Handler?
答案 0 :(得分:0)
如果您使用的是64位版本的Windows,请尝试将自定义条目添加到此密钥中:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微软\的Windows \ CurrentVersion \ Explorer中\ CommandStore \壳