为了释放DLL,我们在调用DLL时使用“?u”,如下所示。
System::Call "Launch.dll::IsDriverPresent() i.r0 ?u"
同样有没有办法释放或卸载exe和它使用后的依赖?
因为有时在已安装的目录中卸载后,可执行文件及其依赖项仍然存在。
以下是我们用来调用Exec的行:
Exec '"$INSTDIR\ValidateDriver.exe" ON'
不,你不能卸载.EXE。 .EXE将被锁定,直到其最终线程结束并且所有线程的所有句柄都已关闭,并且进程本身已关闭。
如果你杀死/终止进程并且它仍然被锁定,那么很可能有一些反病毒软件仍然锁定文件。
您可以在一个循环中调用Delete
和Sleep
,并且在重试10秒左右之后,您可能不得不放弃或向用户显示MessageBox。