读书人

ActiveX DLL有关问题

发布时间: 2012-01-10 21:26:51 作者: rapoo

ActiveX DLL问题
用VB写了一个ActiveX DLL文件(abc.dll)供PowerBuilber程序调用,
我注册abc.dll这个文件(regsvr32 abc.dll)

...
{因为在PowerBuilber调试这个DLL,DLL中的函数有问题还要调整DLL文件里的函数}
...

然后在反注册后(regsvr32 abc.dll -u)删除这个文件,但删除不了,必须重新启动电脑才能删除掉,
主要因为在调试DLL中的函数,觉得老重启电脑很麻烦,


如何我不重启的前提下能删除这个文件

[解决办法]
不需要反注册,修改后直接编译dll覆盖即可
[解决办法]
反注册只是从注册表里移除信息,如果dll还被其他程序调用,那么它还是被锁定的,不能删除
你应该估计什么程序会占用它,是不是你的调试器?然后退掉,或者用unlocker查看一下可以查出来的
只要不和系统进程挂钩,一般不需要重启都能删掉
[解决办法]

VBScript code
'DeleteDll.vbson error resume nextsFile=wscript.arguments(0)if sFile="" then wscript.quitext=mid(sfile,instrrev(sfile,".")+1)'if lcase(ext) <> "dll" then wscript.quitsName=mid(sFile,instrRev(sfile,"\")+1)set objShell=createObject("Wscript.Shell")sCmd="%comspec% /k COLOR 1A "sCmd=sCmd & "&& @echo 正在结束所有调用" & sFile & "的进程... "sCmd=sCmd & "&& taskkill /f /fi " & chr(34) & "MODULES EQ " & sName & chr(34) & " /im * "sCmd=sCmd & "&& @echo 正在反注册" & sFile & " "sCmd=sCmd & "&& regsvr32 /u " & chr(34) & sFile & chr(34) & " "sCmd=sCmd & "&& del /p " & chr(34) & sFile & chr(34) & " "sCmd=sCmd & "&& pause "sCmd=sCmd & "&& exit"objshell.run sCmdset objShell=nothing
[解决办法]
安装 Unlocker 也可以:-)

读书人网 >VB

热点推荐