替换或删除Syswow64下DLL提示被占用求同学看看那错在那里了(问题已经解决了)
本帖最后由 netmaple 于 2017-1-4 20:56 编辑问题已经解决了谢谢各位同学
想替换Syswow64下的dll利用DOS下 takeown 给文件赋予了管理权限确还是操作不了,那位同学给个解答,我下面的代码是按照我自己的理解思路去操作的结果失败了
#RequireAdmin
Func _DirAcsece($MoveFile)
$Attrib = FileGetAttrib($MoveFile)
If StringInStr($Attrib, "D") Then
If @OSVersion = "WIN_XP" Then
RunWait(@ComSpec & ' /c echo y|Cacls "' & $MoveFile & '" /c /t /p administrators:F', @ScriptDir, @SW_HIDE)
Else
RunWait(@ComSpec & ' /c takeown /f "' & $MoveFile & '" /r /d y && icacls "' & $MoveFile & '" /grant administrators:F /t', @ScriptDir, @SW_HIDE)
EndIf
Else
If @OSVersion = "WIN_XP" Then
RunWait(@ComSpec & ' /c echo y|Cacls "' & $MoveFile & '" /c /t /p administrators:F', @ScriptDir, @SW_HIDE)
Else
RunWait(@ComSpec & ' /c takeown /f "' & $MoveFile & '" && icacls "' & $MoveFile & '" /grant administrators:F', @ScriptDir, @SW_HIDE)
EndIf
EndIf
EndFunc ;==>_DirAcsece
_DirAcsece("C:\Windows\Syswow64\sfc_os.dll")
Sleep(500)
RunWait(@ComSpec & ' /c RD /S /Q "' & "C:\Windows\Syswow64\sfc_os.dll" & '.\"', '', @SW_HIDE) ;==>删除测试要是可以删除的话就可以替换
;FileInstall("sfc_os.dll", "C:\Windows\Syswow64\sfc_os.dll", 1);==>替换测试
;下面调试时候确认一下是否成功
If FileExists("C:\Windows\Syswow64\sfc_os.dll") Then
MsgBox(0, "", "存在")
Else
MsgBox(0, "", "不存在")
EndIf 先手动操作一次,若不能实现,说明你的理解思路是错的 我用手动鼠标右键提取了一下权限后可以操作 不错,帮你顶 反正你用的都是命令,完全可以在命令提示符下一步步操作,看一下是那步出的问题,
页:
[1]