对话框

时间:2016-04-20 19:09:46

标签: vb.net windows shell contextmenu

我创建了一个应用程序来帮助维护在办公室周围使用的文件夹/文件路径格式。当exe最初以管理员模式运行时,应用程序将注册表实体添加到HKEY_CLASSES_ROOT\AllFileSystemObjects\shell\PathStructure路径,将子项添加到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\,其中 PathStructure 是应用程序的名称和子项以PathStructure.*为键,*替换为命令名。

在浏览Windows资源管理器时,这完全正常,命令按预期工作。但是,在导航打开或保存对话框时,仅显示根菜单项路径结构,子菜单不会在非Microsoft应用程序中级联。总是有效的子菜单的一个很好的例子是发送到菜单项,它在我测试的每个对话框中正确级联。

以下是尝试保存(左)和浏览资源管理器(右)的示例: Saving vs. Exploring

以下是子项注册表实体(来自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?

1 个答案:

答案 0 :(得分:0)

如果您使用的是64位版本的Windows,请尝试将自定义条目添加到此密钥中:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微软\的Windows \ CurrentVersion \ Explorer中\ CommandStore \壳