程序:批量筛选DLL是否可以通过regsvr32注册的工具

优质
小牛编辑
117浏览
2023-12-01
有时做大规模软件时不知道哪个dll需要注册,哪个不需要。如果手动试的话非常麻烦,看资料准确性又不够高,下面提供这问题的一个解决方法:一个批量筛选DLL是否可以通过regsvr32注册的工具。

程序运行之后会将程序文件夹下面所有dll都注册一次,如果注册成功就将dll文件名写入Success.txt,失败就写入Failed.txt。注意子文件夹下面文件太多可能会导致程序崩溃,是由于NSIS局限性决定的,不可避免。

引用脚本的内容:

!include "FileFunc.nsh"
!insertmacro Locate
OutFile "筛选dll.EXE"
Name "筛选dll"
Var Success
Var Failed
Section
FileOpen $Success "$EXEDIR\Success.TXT" A
FileOpen $Failed "$EXEDIR\Failed.txt" A
${Locate} "$EXEDIR" "/M=*.dll" "loc"   ;可以改一下文件类型把ocx,ax等文件也测试一遍
FileClose $Success
FileClose $Failed
SectionEnd
Function loc
ExecWait 'REGSVR32.EXE /S "$R9"'
IfErrors +3
FileWrite $Success 'RegDLL "$R9"$\r$\n'
Goto +2
FileWrite $Failed '-RegDLL "$R9"$\r$\n'
ClearErrors
ExecWait 'REGSVR32.EXE /S /U "$R9"'
ClearErrors
Push $R0
FunctionEnd