有没有一种通过编程的方式调用作为shell扩展的DLL的方法?我们使用一个在Windows资源管理器上注册了一个shell扩展的软件,我需要调用其中一个可用于其上下文菜单中的项目。我没有想要调用的软件源代码。
编辑
只有当我在Windows资源管理器上选择PDF文件时,这个上下文菜单才会出现。所以我需要传递一个dll文件来调用它。
编辑
注册表信息:
[HKEY_CLASSES_ROOT\CLSID{2DC8E5F2-C89C-4730-82C9-19120DEE5B0A}] @="PDFTransformer3.PDFTContextMenu.1"
[HKEY_CLASSES_ROOT\CLSID{2DC8E5F2-C89C-4730-82C9-19120DEE5B0A}\InprocServer32] @="C:\Program Files\ABBYY PDF Transformer 3.0\PDFTContextMenu.dll" "ThreadingModel"="Apartment"
[HKEY_CLASSES_ROOT\CLSID{2DC8E5F2-C89C-4730-82C9-19120DEE5B0A}\ProgID] @="PDFTransformer3.PDFTContextMenu.1"
[HKEY_CLASSES_ROOT\CLSID{2DC8E5F2-C89C-4730-82C9-19120DEE5B0A}\Programmable]
[HKEY_CLASSES_ROOT\CLSID{2DC8E5F2-C89C-4730-82C9-19120DEE5B0A}\VersionIndependentProgID] @="PDFTransformer3.PDFTContextMenu"
编辑
是否可以使用我想要的动作(而不是默认值)调用ShellExecuteEx?如果可以,如何调用我想要的动作(它使用DLL)?
这是我想要为PDF文件调用的动作:
编辑
只有当我在Windows资源管理器上选择PDF文件时,这个上下文菜单才会出现。所以我需要传递一个dll文件来调用它。
编辑
注册表信息:
[HKEY_CLASSES_ROOT\CLSID{2DC8E5F2-C89C-4730-82C9-19120DEE5B0A}] @="PDFTransformer3.PDFTContextMenu.1"
[HKEY_CLASSES_ROOT\CLSID{2DC8E5F2-C89C-4730-82C9-19120DEE5B0A}\InprocServer32] @="C:\Program Files\ABBYY PDF Transformer 3.0\PDFTContextMenu.dll" "ThreadingModel"="Apartment"
[HKEY_CLASSES_ROOT\CLSID{2DC8E5F2-C89C-4730-82C9-19120DEE5B0A}\ProgID] @="PDFTransformer3.PDFTContextMenu.1"
[HKEY_CLASSES_ROOT\CLSID{2DC8E5F2-C89C-4730-82C9-19120DEE5B0A}\Programmable]
[HKEY_CLASSES_ROOT\CLSID{2DC8E5F2-C89C-4730-82C9-19120DEE5B0A}\VersionIndependentProgID] @="PDFTransformer3.PDFTContextMenu"
编辑
是否可以使用我想要的动作(而不是默认值)调用ShellExecuteEx?如果可以,如何调用我想要的动作(它使用DLL)?
这是我想要为PDF文件调用的动作:
HKCR\.pdf
并查看(Default)
的值,我们称之为<FileTypeName>
。然后查找HKCR\<FileTypeName>
,以此类推。 - David Heffernan