如何在vb.net中获取OCX的位置和文件名

琼斯恢复莫妮卡

我可以很好地加载控件(伪代码):

Set o = CreateObject("DevsoftCustom.CommControl")

现在,我需要找到该ocx的文件和目录(以便我可以读取ocx上的版本标记,并从该目录中的配置文件中读取)。

如何在C#和vb.net中完成?(该项目在vb.net中)

米奇

现在,我需要找到该ocx的文件和目录

假设您未使用私有COM注册,则此类信息在注册表中。

HKCR\CLSID\<SOME-GUID>\LocalServer="<path>"

...或者:

HKCR\<PROG-ID>\CLSID=<GUID>  // use this GUID in the example above

或者,如果您不想使用注册表,则可以使用本机函数CLSIDFromProgID()告诉我更多...

下面是一个简单的表示的Microsoft Outlook日期控制OLE / COM对象查看

您可以使用OLE / COM对象查看器来查看控件的接口。

在此处输入图片说明

因此,在您的情况下,请根据编ID “ DevsoftCustom.CommControl”在注册表中查找类ID。

IE

  1. HKCR下,找到键DevsoftCustom.CommControl
  2. 将有一个名为CLSID的子项,请注意默认值
  3. 打开HKCR \ CLSID \ <步骤2中的密钥>
  4. 该路径将在名为LocalServer32的子项中

使用Office示例:

在此处输入图片说明

一旦了解了COM的工作原理,就可以轻松地在c#中实现上述功能。

是否没有更直接的方法可以根据对象/控件名称询问操作系统?

并不是我所知道的,并且正如Damien所提到的那样,COM(包括OCX)的要点是,您不必关心某个地方,而只需要一个实例即可。

最接近的并行是在GAC中具有一个.NET程序集,您想在其中创建对象的实例,但又不必担心一遍又一遍地在同一台计算机上部署相同的程序集。当然,GAC的作用远不止于此,所以比较就在那里结束了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从Net Core中的异常获取行号和文件名?

vb.net获取活动excel工作簿的完整路径和文件名

如何使用jQuery从输入类型文件中获取选定的文件名和文件路径

如何获取文件路径和文件名到列表中?

如何获取在Java程序中打开的完整文件名和文件路径?

如何在VB6中注册.ocx文件?

如何允许用户选择保存位置和文件名

使用foreach循环时如何在SSIS中获取文件夹名称和文件名错误

在Shell脚本中循环时如何获取目录和文件名

如何获取调用行号和文件名

如何从 ls 获取全名、路径和文件名?

在VB.NET中获取文件名的文件扩展名?

如何在pentaho DI中动态呈现表名和文件名

如何在PyKD中获取模块的原始文件名?

如何在Dart中获取文件名?

如何在Mocha Reporter中获取测试文件名

如何在Django中获取上传的文件名

如何在Java中获取文件名和路径?

如何在循环内的变量中获取文件名?

如何在awk中获取文件名

如何在Dojo中获取当前文件名

Powershell:如何根据文件名获取文件的位置?

如何在OpenFileDialog中显示完整路径和文件名

如何在Lotus Notes脚本中检索目录地址和文件名

如何在Automator中设置背景颜色和文件名文本?

vb.net 如何获取文本文件的文件名?

如何在没有文件夹和文件类型的情况下获取文件名

如何使用Shell脚本从tar文件获取文件名和文件大小

如何下载网址中没有文件名和文件扩展名的文件