找回密码
 加入
搜索
查看: 2143|回复: 4

[网络通信] 替换或删除Syswow64下DLL提示被占用求同学看看那错在那里了(问题已经解决了)

[复制链接]
发表于 2016-12-30 21:25:15 | 显示全部楼层 |阅读模式
本帖最后由 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
发表于 2016-12-31 11:14:48 | 显示全部楼层
先手动操作一次,若不能实现,说明你的理解思路是错的
 楼主| 发表于 2017-1-1 11:34:45 | 显示全部楼层
我用手动鼠标右键提取了一下权限后可以操作
发表于 2017-1-1 19:38:22 | 显示全部楼层
不错,帮你顶
发表于 2017-1-2 11:50:22 | 显示全部楼层
反正你用的都是命令,完全可以在命令提示符下一步步操作,看一下是那步出的问题,
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-25 12:04 , Processed in 0.077821 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表