使用CreateObject("PCDLRN.Application")启动PC DMIS的版本选择问题
PC DMIS多版本启动问题与解决方案
一、CreateObject版本选择的核心逻辑
CreateObject("PCDLRN.Application")是通过Windows注册表的COM ProgID映射来选择版本的:
- PC DMIS每个版本安装时,都会向注册表注册
PCDLRN.Application这个通用ProgID,最后完成注册的版本会覆盖该ProgID对应的CLSID(类标识符)。 - 某台机器只加载旧版本,大概率是新版本安装时没有覆盖旧的ProgID关联(比如安装过程中选择了保留旧版本的注册项,或者安装权限不足导致注册失败)。
二、强制启动指定版本的两种方法
1. 使用版本专属ProgID
多数多版本软件会提供带版本号的ProgID,比如PCDLRN.Application.2023或PCDLRN.Application.7.0:
- 打开注册表编辑器(运行
regedit),在HKEY_CLASSES_ROOT下搜索PCDLRN.Application,查看是否存在带版本号的子项。 - 修改代码为:
CreateObject("PCDLRN.Application.XXX") ' XXX替换为目标版本号,比如2023
2. 直接通过CLSID创建实例
每个版本的PC DMIS COM组件有唯一的CLSID,绕过ProgID直接指定:
- 在注册表中找到目标版本的CLSID:导航到
HKEY_CLASSES_ROOT\PCDLRN.Application.XXX\CLSID,复制对应的GUID值。 - 修改代码为:
Dim targetClsid As New Guid("这里替换为你复制的CLSID") Dim pcdmisApp = CreateObject(Type.GetTypeFromCLSID(targetClsid))
三、卸载旧版后报错的修复步骤
卸载旧版后仍找旧版本,是注册表残留了无效的ProgID映射,按以下步骤修复:
重新注册新版本COM组件
找到PC DMIS安装目录下的主程序(通常是PCDLRN.exe),以管理员身份打开命令提示符,执行:regsvr32 "C:\Program Files\Hexagon\PC-DMIS 2023\PCDLRN.exe"(路径替换为你的新版本实际安装路径)
手动修正注册表映射
如果注册命令无效,手动修改注册表:- 打开
regedit,导航到HKEY_CLASSES_ROOT\PCDLRN.Application\CLSID。 - 将默认值改为新版本对应的CLSID(从
HKEY_CLASSES_ROOT\PCDLRN.Application.XXX\CLSID中复制)。
- 打开
内容的提问来源于stack exchange,提问作者iingle
相关产品推荐
相关产品推荐

