在旧机器(Windows XP)中注册DLL时,regsrv总是说注册成功了。 即使用户没有注册权限,也会发生这种情况。
用dll的名字,是否有一个命令,我可以在命令行运行来validation是否安装了DLL?
我发现这个链接: 我怎样才能知道一个DLL是否已经注册? :
由于DLL注册可以包含任意操作,所以没有通用的方法来确定是否发生任意DLL的注册。
要确定一个DLL是否已被注册,您需要引入特定领域的知识。 如果你知道一个DLL注册一个特定的CLSID的COM对象,你可以检查该CLSID是否确实被注册了。
好吧,这是不可能的,但DLL通常注册自己在寄存器中创build一个条目。 解决方法是:
reg query HKCR\CLSID | find /i "{9F3DBFEE-FD77-4774-868B-65F75E7DB7C3}" reg query HKCR\CLSID | find /i "{9F3DBFEE-FD77-4774-868B-65F75E7DB7C3}" 更好的答案可以让我在注册之前直接从文件中findGUID。 至less这样你可以创build一个脚本来安装并validation它是否成功安装。
我需要检查一个具有特定名称的DLL是否已经注册,并且在我的BAT中使用了这个命令:
reg query HKLM\SOFTWARE\Classes /s /f whatever.dll if errorlevel 1 goto DLL_MISSING
如果错误级别在reg query找不到任何东西时将控制权发送给标签。 您可能需要更改您search的registry部分(在我的案例中, HKLM'... ,更具体的path更快,否则需要很长的时间)。
可以根据需要处理输出,可以获取条目的GUID,但是这不在reg查询命令的范围之内。