nev*_*ves 33 windows windows-xp dll
当您在旧机器(Windows XP)中注册 DLL 时,regsrv 总是说注册成功。即使用户没有注册权限,也会发生这种情况。
使用dll的名称,是否有可以在命令行运行以验证是否安装了DLL的命令?
nev*_*ves 26
我找到了这个链接:如何判断 DLL 是否已注册?:
鉴于 DLL 注册可以包含任意操作,因此没有确定是否已为任意 DLL 进行注册的通用方法。
要确定一个 DLL 是否已注册,您需要引入特定领域的知识。如果您知道 DLL 使用特定 CLSID 注册了 COM 对象,则可以检查该 CLSID 是否确实已注册。
好吧,这是不可能的,但 DLL 通常会注册自己,在寄存器中创建一个条目。解决方法是:
reg query HKCR\CLSID | find /i "{9F3DBFEE-FD77-4774-868B-65F75E7DB7C3}"更好的答案将允许我在注册之前直接从文件中找到 GUID。至少通过这种方式,您可以创建一个脚本来安装并验证它是否已成功安装。
小智 18
我需要检查是否注册了具有特定名称的 DLL,并且我在 BAT 中使用了此命令:
reg query HKLM\SOFTWARE\Classes /s /f whatever.dll
if errorlevel 1 goto DLL_MISSING
Run Code Online (Sandbox Code Playgroud)
如果使用 errorlevel 将控制发送到标签,则无论何时reg query一无所获。您可能需要更改您搜索的注册表部分(在我的情况下HKLM'...,路径越具体越快,否则需要很长时间)。
如有必要,可以处理输出,可以获得条目的 GUID,但这超出了 reg query 命令的范围。
小智 5
要从命令行查找 DLL 的注册表项(以及可选的 COM 对象),@virgo47 和 @neves 的答案组合最适合我。
reg 查询 HKLM\SOFTWARE\Classes /s /fwhatever.dll
/s /f "{GUID}"应该比 更快| findstr /i "{GUID}"。并且| find /i "{GUID}"似乎是一个拼写错误(但我还不能在 Serverfault 上写评论)。)
reg 查询 HKCR\CLSID /s /f "{9F3DBFEE-FD77-4774-868B-65F75E7DB7C3}"
| 归档时间: |
|
| 查看次数: |
197272 次 |
| 最近记录: |