【发布时间】:2011-08-08 23:11:18
【问题描述】:
有没有办法以编程方式调用作为 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"="公寓"
[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 文件的动词:
【问题讨论】:
-
shell 扩展有什么作用?它是什么类型的扩展程序?
-
它在 pdf 文件中工作。我猜它是一个 COM DLL,但我不确定。
-
你需要知道它是什么类型的shell扩展才能知道如何调用它。如果您不知道它是什么类型,那么您如何知道要请求哪些 COM 接口?
-
在弄清楚它是哪种外壳扩展之前,您不会得到答案。有很多不同类型的 shell 扩展。
-
顺便说一下,+1 是为了补偿那些在不发表任何评论的情况下投了反对票的人。
标签: c# windows delphi shell-extensions