RegSvr32.exe 的 /n 和 /i 参数有什么不同?

2023-12-05

要注册 COM 服务器,我们在提升模式下运行类似的命令:

regsvr32.exe com.dll

要执行每用户注册,请在用户帐户中执行:

regsvr32.exe /n /i:user com.dll

regsvr32.exe 支持以下参数:

/u - Unregister server 
/i - Call DllInstall passing it an optional [cmdline]; when used with /u calls dll uninstall 
/n - do not call DllRegisterServer; this option must be used with /i 
/s – Silent; display no message boxes (added with Windows XP and Windows Vista)

当在Delphi中创建COM服务器时,导出了这些方法:

exports
  DllGetClassObject,
  DllCanUnloadNow,
  DllRegisterServer,
  DllUnregisterServer,
  DllInstall;

我注意到这些会发生:

  1. “regsvr32.exe com.dll”调用DllRegisterServer。
  2. “regsvr32.exe /u com.dll”调用DllUnregisterServer。
  3. “regsvr32.exe /n /i:user com.dll”调用 DllInstall。
  4. “regsvr32.exe /u /n /i:user com.dll”调用 DllInstall。

我对参数 /n 和 /i 以及 DllUnregisterServer 和 DllInstall 感到困惑。有什么不同吗?

另外,为什么“/u /n /i:user”调用Dllinstall?我注意到“HKEY_CURRENT_USER\Software\Classes”中相应的注册表项已被删除。


DllInstall() 的文档解释差异:

DllInstall 仅用于应用程序安装和设置。它 不应由应用程序调用。它的目的类似于 DllRegisterServer 或 DllUnregisterServer。与这些功能不同的是, DllInstall 接受一个输入字符串,该字符串可用于指定 各种不同的动作。这允许将 DLL 安装在 不止一种方式,基于任何适当的标准。

要将 DllInstall 与 regsvr32 一起使用,请添加“/i”标志,后跟冒号 (:) 和一个字符串。该字符串将作为 DllInstall 传递给 pszCmdLine 参数。如果省略冒号和字符串,pszCmdLine 将被设置为 NULL。以下示例将用于安装 DLL。

regsvr32 /i:"Install_1" dllname.dll

DllInstall 被调用 bInstall 设置为 TRUE,pszCmdLine 设置为“Install_1”。要卸载一个 DLL,使用以下内容:

regsvr32 /u /i:"Install_1" dllname.dll

和 以上两个示例,DllRegisterServer 或 DllUnregisterServer 也会被调用。要仅调用 DllInstall,请添加“/n”标志。

regsvr32 /n /i:"Install_1" dllname.dll

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RegSvr32.exe 的 /n 和 /i 参数有什么不同? 的相关文章

  • 即使队列已重命名,如何在 Windows 上唯一标识该打印队列?

    如何唯一且可靠地识别给定服务器上的 Windows 打印队列 包括跨打印队列重命名 我想处理如下情况 Jdoe 创建打印机 A 我的程序在某个时刻收集有关打印机 A 的信息 Jdoe 将打印机 A 重命名为打印机 AA 我的程序在某个时刻再
  • 无法在 Qt Creator 中检索调试输出

    在 Windows 上的 Qt Creator 中 qDebug 语句不起作用 并且输出窗口中出现以下消息 无法检索调试输出 如何解决 如果多个 Qt Creator 实例处于活动状态 则可能会出现此问题 要解决此问题 只需关闭 Qt Cr
  • 使用 Inno Setup 将序列号写入文件

    我正在尝试让以下 Inno Setup 代码正常工作 Setup UserInfoPage yes Code function CheckSerial Serial String Boolean begin Result true Save
  • 在 Windows 应用程序中保存用户凭据

    是否有在 NET Windows 应用程序中存储凭据的最佳实践方法 无论是内置 API 还是只是推荐的加密算法 与 Tortoise SVN Spotify 和 Skype 一样 Edit 我的目的是使用一个从其身份验证服务返回令牌的 We
  • 在 C#/VB.NET 或 C++ Win32 中启用/禁用 Aero

    如何在 C NET 或 C Win32 中禁用航空效果 这是我在 C C 中的测试代码 但仅在我的应用程序运行时才有效 include
  • 如何在 Windows 路径中使用卷标?

    我想使用批处理文件从可移动驱动器复制文件 无论它获得的驱动器号是什么 到目前为止 还没有去 似乎没有任何现成的命令或第三方命令行工具可以处理基于卷标签的路径 我尝试了 FreeFileSync 但它可以大批量工作 并且我在这里需要精确的文件
  • 如何使用 Windows API 重置 USB 设备?

    您知道如何使用 Windows XP API 来重置 USB 总线吗 换句话说 我希望操作系统踢出当前连接的所有 USB 设备 然后重新自动检测所有设备 我知道devcon http support microsoft com kb 311
  • 调用 close() 后大文件没有立即刷新到磁盘?

    我正在使用 python 脚本创建大文件 超过1GB 实际上有 8 个 在创建它们之后 我必须创建将使用这些文件的进程 该脚本如下所示 This is more complex function but it basically does
  • 如何使用 .Net (C#) 在 Windows 中安全地存储 AES 密钥?

    我一直在寻找一种方法来存储给定的 AES 密钥 以便无法检索它 但它仍然可以用于加密和解密 使用 C 我认为可以找到非对称密钥存储的等效项here http msdn microsoft com en us library tswxhw92
  • WindowsFromDc 返回 null

    我需要一些有关 win32 api 特别是 WindowsFromDc 的帮助 我有一个应用程序挂钩另一个应用程序 这两个应用程序通过 NamedPipe 进行通信 在第二个应用程序中 我挂钩了 DrawTextExW 函数 并从该函数中获
  • PHP中如何找出特定进程仍在运行

    我正在编写一个脚本 该脚本构建其他脚本的队列 并应该管理它们的启动 管理器脚本应该知道哪个子进程已经完成 因此它可以启动在队列中等待的其他脚本 我添加了一个 echo 获取每个子进程的进程 ID 所以我有我的子进程进程 ID 现在正在使用系
  • Git core.safecrlf 对具有相同行结尾的文件有不同的行为

    我有带有 VS 项目的 Windows 计算机 并且使用 Visual Studio 和 Cygwin 环境中的工具 包括 Git 有时 编辑后我会在文件中得到不同的行结尾 我想要简单的解决方案来检查文件的行尾一致性 然后再将其发送到存储库
  • 如何每次在新进程中打开文件而不考虑文件打开器

    我正在使用 windows 7 64 位 python 2 7 我正在打开文件 并监视文件更改 然后等待直到打开的文件关闭 这对于简单的记事本文件打开器来说效果很好 由于记事本在新的进程 ID 中打开每个文件 而记事本 在单个记事本 进程
  • 如何在 Windows 上以编程方式将 SVG 转换为 PDF?

    我希望在服务器上以编程方式将 SVG 转换为 PDF 文档 在 Windows 上执行此操作有哪些选项 我看过链接Inkscape http www inkscape org Batik http xmlgraphics apache or
  • 如何检查应用程序的另一个实例是否正在运行[重复]

    这个问题在这里已经有答案了 有人可以展示如何检查程序的另一个实例 例如 test exe 是否正在运行 如果是 则停止加载应用程序 如果存在该实例 想要一些严肃的代码吗 这里是 var exists System Diagnostics P
  • 从 C++ 启动 Windows 照片应用程序以获取文件列表

    我想从 C 启动 Windows 照片应用程序以获取图像文件列表 照片应用程序的问题在于 如果使用 ShellExecute 对于单个文件 启动它 它将禁用下一个和上一个按钮 即使该文件夹包含其他图像也是如此 我尝试使用 IApplicat
  • 如何读取扩展文件属性/文件元数据

    因此 我按照教程使用 ASP net core 将文件 上传 到本地路径 这是代码 public IActionResult About IList
  • 关于在 Windows 上使用 WiFi Direct Api?

    我目前正在开发一个应用程序 我需要在其中创建链接 阅读 无线网络连接 在桌面应用程序 在 Windows 10 上 和平板电脑 Android 但无关紧要 之间 工作流程 按钮 gt 如果需要提升权限 gt 创建类似托管网络的 WiFi 网
  • PlaySound 可在 Visual Studio 中运行,但不能在独立 exe 中运行

    我正在尝试使用 Visual Studio 在 C 中播放 wav 文件 我将文件 my wav 放入项目目录中并使用代码 PlaySound TEXT my wav NULL SND FILENAME SND SYNC 我按下播放按钮 或
  • phoenix 框架 - 新套接字处的参数无效 - windows

    我无法运行新的 Phoenix 应用程序 这是我收到的错误 我不确定原因是什么 我尝试更改端口 但这并没有改变行为 另外 我似乎能够正确运行节点 Compiled web views error view ex Compiled web c

随机推荐