Dll 我需要更改路径并使用新更改的路径

Dll 我需要更改路径并使用新更改的路径,dll,inno-setup,Dll,Inno Setup,我们使用的是非常旧的英特尔数学库(nsp.dll和系列),它的位置必须在Windows PATH变量中指定。之前,我们在Windows/System32文件夹中安装了这些dll,因此一切正常。现在我们想在另一个文件夹中安装这些dll,原因是我们正在迁移到Windows 7,不想将dll放在System32文件夹中。我找到了如何更改PATH变量的答案(谢谢),这确实有效。安装后,我检查了路径,我们的文件夹没有添加到路径,我检查了注册表项,我们的文件夹被添加。但是……当我们注册使用这些dll的OCX

我们使用的是非常旧的英特尔数学库(nsp.dll和系列),它的位置必须在Windows PATH变量中指定。之前,我们在Windows/System32文件夹中安装了这些dll,因此一切正常。现在我们想在另一个文件夹中安装这些dll,原因是我们正在迁移到Windows 7,不想将dll放在System32文件夹中。我找到了如何更改PATH变量的答案(谢谢),这确实有效。安装后,我检查了路径,我们的文件夹没有添加到路径,我检查了注册表项,我们的文件夹被添加。但是……当我们注册使用这些dll的OCX时,路径似乎还没有改变。当我重新启动时,路径中有我们添加的路径

因此,我似乎陷入了困境,我需要更改路径,并在安装过程中使用新路径。我是否需要重新启动以及在重新启动后如何注册OCX?还是有别的办法

重新启动后,以管理员身份运行cmd允许我在新文件夹中注册OCX。但我想让安装程序自动执行此操作


谢谢。

确保脚本中有以下设置:

[Setup]
ChangesEnvironment=yes
这将允许路径更改在不重新启动的情况下生效

但是它只会影响shell启动的新流程。如果您有一个现有的cmd窗口,或者在安装结束时尝试在不使用
shellexec
标志的情况下启动应用程序,它仍然会看到旧的路径


和double-但是:您不能合法地更改安装和注册COM DLL或OCX文件的路径。这些必须毫无例外地安装在供应商指定的位置。因此,您必须继续在
{sys}
中安装它。(至少如果你仍然使用系统范围的注册。如果你查找“免费注册COM”,有一种替代方法可以让你移动它,但它有很多警告,很少值得付出努力。)


另外请注意,“因为Windows 7”不是移动某些内容的有效理由。

谢谢,我将尝试使用ChangesEnvironment和shellexec标志。我们被告知在\program files\companyname\appname下安装“所有内容”(无例外)。我会提到律师的法律术语,可能会被允许在最容易的地方安装东西。我不知道安装文件的位置受到某种权限的保护。但是我想尝试一下你对学习体验的建议。这不是权利本身,只是
regserver
是一个全局注册——每个应用程序都必须使用相同的位置(通常也必须使用
sharedfile
)。否则,安装或卸载你的应用程序可能会破坏其他人的应用程序,反之亦然。最后,我只是安装到{sys}并继续我的生活。我们的是将安装在计算机上的唯一应用程序。交钥匙式系统。