cj4025 发表于 2008-6-10 01:36:47

用什么方式实现删除HOSTS文件,请那位大哥指点迷津

我用过以下两方式

一、
DirRemove ( @WindowsDir & "\system32\drivers\etc\hosts")

二、
FileDelete ( @WindowsDir & "\system32\drivers\etc\hosts")

上述两种方式,都无法删除HOSTS文件。

这两种方法我也试了,还是不可以。不知道那位大哥还有没有更好的办法?

[ 本帖最后由 cj4025 于 2008-6-10 05:27 编辑 ]

dboys 发表于 2008-6-10 01:44:54

是系统保护的问题吧,

试试这样是否可行?


ProcessClose("explorer.exe")
FileDelete ( @WindowsDir & "\system32\drivers\etc\hosts")
Run("explorer.exe")


[ 本帖最后由 dboys 于 2008-6-10 02:14 编辑 ]

cj4025 发表于 2008-6-10 01:54:06

请问楼上大哥,为什么要结束explorer.exe 进程才能删除HOSTS文件呢。

给点解释啊。

jhwl 发表于 2008-6-10 02:17:08

为防止系统保护提前结束掉explorer.exe
楼上可试用些方法
If FileDelete ( @WindowsDir & "\system32\drivers\etc\hosts")<>1 Then
RunWait(@ComSpec & " /c " & 'attrib -r -s -h c:\windows\system32\drivers\etc\hosts', "", @SW_HIDE)
FileDelete ( @WindowsDir & "\system32\drivers\etc\hosts")
EndIf

jackywjl 发表于 2008-6-10 02:22:37

FileDelete ( @WindowsDir & "\system32\drivers\etc\hosts")

用這個可以刪阿

cj4025 发表于 2008-6-10 02:29:54

我终于明白为什么我的机器删除不了,天呀,这问题困饶了四五天啊,到论坛才得到解决办法,论坛的力量正大啊。

感谢热情回复我问题的两位老师,谢谢你们了。非常感谢,

是我机器上的HOSTS文件写有 只读 和 存档 的两个属性。特别感谢楼上大哥的详细解释。

cj4025 发表于 2008-6-10 02:44:38

RunWait(@ComSpec & " /c " & 'attrib -r -s -h c:\windows\system32\drivers\etc\hosts', "", @SW_HIDE)


不知道大哥的这句能否改变下呢。如果HOSTS文件不在C盘。如何能实现改变属性呢?

jhwl 发表于 2008-6-10 04:14:51

只为学习网络存在于网络,不要做非法破坏...
$var=@WindowsDir & "\system32\drivers\etc\hosts"
If FileDelete ( $var)<>1 Then
RunWait(@ComSpec & " /c " & 'attrib -r -s -h '&$var&'', "", @SW_HIDE)
FileDelete ($var)
EndIf

cj4025 发表于 2008-6-10 05:27:24

感谢这位大哥了,问题彻底解决了,真的非常感谢你啊。

kakinkgb 发表于 2008-6-10 19:15:09

原帖由 jhwl 于 2008-6-10 04:14 发表 http://www.autoitx.com/images/common/back.gif
只为学习网络存在于网络,不要做非法破坏...
$var=@WindowsDir & "\system32\drivers\etc\hosts"
If FileDelete ( $var)1 Then
RunWait(@ComSpec & " /c " & 'attrib -r -s -h '&$var&'', "", @SW_HIDE)
Fil ...
用FileSetAttrib也可以,呵呵
页: [1]
查看完整版本: 用什么方式实现删除HOSTS文件,请那位大哥指点迷津