Raf*_*cci 3 c# windows delphi shell-extensions
有没有办法以编程方式调用DLL扩展的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} \可编程]
[HKEY_CLASSES_ROOT\CLSID {2DC8E5F2-C89C-4730-82C9-19120DEE5B0A}\VersionIndependentProgID] @ ="PDFTransformer3.PDFTContextMenu"
编辑
是否可以ShellExecuteEx使用我想要的动词(不是默认动词)来调用?如果是这样,我如何调用我想要的动词(使用DLL)?
多数民众赞成我想要一个PDF文件的动词:

Rob*_*edy 11
DLL显然是上下文菜单扩展.如果你想以与shell相同的方式调用它,那么你想要托管 DLL实现的IContextMenu接口.几年前,Raymond Chen撰写了一篇关于这个主题的广泛系列文章:
前两篇文章是最重要的.他们首先介绍如何获取文件的IContextMenu接口,然后介绍如何调用该菜单提供的一个或多个命令.基本上,获取IContextMenu接口,填充CMINVOKECOMMANDINFOEX结构,然后将其传递给接口的InvokeCommand方法.文章调用TrackPopupMenu向用户显示菜单,然后使用选择来填充结构,但如果您已经确切地知道要运行哪个命令,则可以放弃显示菜单.(但是,您可能仍然需要创建菜单,因为IContextMenu对象可能希望首先QueryContextMenu调用它.)
拉斐尔,你可以使用IContextMenu界面.从这里你可以枚举接口返回的条目,然后执行你想要的选项InvokeCommand
| 归档时间: |
|
| 查看次数: |
3411 次 |
| 最近记录: |