使用维克斯注册的ActiveX EXE服务器(Register ActiveX exe server

2019-09-02 03:17发布

我有需要在安装注册后才能使用他们几个VB6的ActiveX服务器exe文件。

我一直在使用热提取信息尝试,但它只能生成一个文件元素。

这些文件可以通过使用/ unregserver开关称他们与/ REGSERVER开关和取消调用它们进行注册。 我明白这不是正确的方法来此。 相反,我应该在注册表项和其他必需的元素添加到我的WiX源。

我的问题是我怎么找到我需要注册这些ActiveX EXE文件是什么注册表项和其他元素。 眼看热似乎无法收获这一信息。

Answer 1:

我有同样的问题,牛油从维克斯2.0,不得不实施登记册收集了外的进程内服务器。 这里是修补牛油 。 会是不错的合并ProcessWithInjectedDll类热量,还可能收敛到主干线在一些点。

要注意的是大量的克鲁夫特从VB6运行时获得的生成注册表项。 所产生的输出是没有一些调整无法使用。 这时候,CleanupRegInclude.vbs可能是有用的。

最后但并非最不重要的,绝对的文件名和路径是无用的。 你必须使用#YourComponent和$ YourComponent代替(检查MSI文件)。



Answer 2:

ActiveX控件只是COM对象。 你需要做登记的最低金额是这样的:

  <RegistryKey Root="HKCR" Action="createAndRemoveOnUninstall" Key="CLSID\{YOUR-GUID-HERE}">
    <RegistryKey Action="createAndRemoveOnUninstall" Key="InprocServer32">
      <RegistryValue Action="write" Value="[INSTALLDIR]YOUR-DLL-HERE.dll" Type="string"/>
      <RegistryValue Action="write" Name="ThreadingModel" Value="Apartment" Type="string"/>
    </RegistryKey>
  </RegistryKey>

您可能需要注册一个程序ID:

    <RegistryKey Action="createAndRemoveOnUninstall" Key="ProgID">
      <RegistryValue Action="write" Value="YOUR.PROGIDHERE" Type="string"/>
    </RegistryKey>


Answer 3:

我怎么找出注册表项和其他元素我需要注册这些ActiveX EXE文件

在一般情况下,你会发现这样的注册表更改:

  1. 带来一个干净的状态注册表,如使用myapp.exe /unregserver

  2. 像这样创建注册表内容的转储

     c:\WINDOWS\system32\reg.exe export dump1.reg 
  3. 运行该命令,将更改注册表,如myapp.exe /regserver

  4. 创建注册表的另一dump2.reg。

  5. 找到一个版本比较工具dump1.reg和dump2.reg之间的差异(例如TortoiseSVN的增加了一个“差异”命令来选择,当你两个文件右键菜单)

有可能是你应该忽略的差别一些噪音。 一个典型的例子是HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\RNG\Seed 。 此注册表项是由Windows的CryptoAPI存储不断聚集熵。 顺便说一句,这个键有时会显示在了商业设置发生器产生的MSI包。 这似乎表明,他们使用类似的注册表嗅探技术:-)



Answer 4:

我以为heat.exe已经更新到能收获COM EXE文件,但我想它可能还没有被执行。

我通常使用一个名为RegSpy / RegSpy 2来提取DCOM EXE文件,COM信息工具: http://www.installsite.org/pages/en/tt_analyze.htm#RegSpy 。

使用上述工具会给你一个reg文件,但你仍然需要转换为WIX格式。 为了让你去reg文件:

regspy2.exe myfile.exe >> myfile.reg

我不认为有一种方法可以自动转换一个reg文件格式WXS(我记得写一个基本的转换器前一阵子,但没有在这里)。 为了简单起见,你可以提取使用InstallShield或明智的Windows安装程序所需要的信息,建立一个MSI,然后拆开使用dark.exe(WiX的反编译器)的微星维克斯格式。 然后将得到的维克斯标记可以被添加到您的项目。



Answer 5:

我想这两个热和@Glytzhkof提到regspy但发现也没有对所有相关的注册表信息的完整提取物为我的COM服务器。 但是我没有找到一个工具 - RegSpyUI - 那种附带的InstallShield它做一个可爱的工作。 更详细的描述在这里 。



文章来源: Register ActiveX exe server using WiX