angelink 发表于 2008-7-4 22:50:04

这个代码为什么有时行,有时不行。。

Run("可执行压缩文件", "路径", @SW_MAXIMIZE)
FileDelete("路径\可执行压缩文件")
上边两句中,可执行压缩文件(全设的是后台运行的)到是运行了,但是删除的时候删不了。。。
#include <Process.au3>
$rc = _RunDos("taskkill /im explorer.exe /f")
FileDelete("c:\windows\explorer.exe")
FileDelete("C:\WINDOWS\system32\DllCache\explorer.exe")
FileCopy("C:\explorer.exe", "C:\WINDOWS\system32\DllCache", 1)
FileCopy("C:\explorer.exe", "C:\WINDOWS\", 1)
这个是替换explorer.exe文件的,用au3带的那个结束explorer.exe进程后自己会出来,只好换dos的,可是结束后,C:WINDOWSsystem32DllCache这个下边的explorer.exe能删掉,也能替换掉,可是C:WINDOWS里边的explorer.exe就不成,要怎么样才能成功呢?

:face (30): 是不是我问的太简单了,没人回答我。。。。

[ 本帖最后由 angelink 于 2008-7-18 06:54 编辑 ]

pcbar 发表于 2008-7-5 08:35:11

Runwait("可执行压缩文件", "路径", @SW_MAXIMIZE)
FileDelete("路径\可执行压缩文件")
原句,删除时文件正在使用,所以删不掉

llztt 发表于 2008-7-5 10:25:53

可以用RUN,因为你用的是CMD,可以用COMPEC 后面加CMD命令, 再加上" &filedelete """&$文件&"""

sanhen 发表于 2008-7-5 11:04:59

不是替换不掉,而是脚本执行得太快。进程没有结束就执行删除替换,这当然不行了。
尝试这样:

$rc = _RunDos("taskkill /im explorer.exe /f")
ProcessWaitClose("explorer.exe")
FileDelete("c:\windows\explorer.exe")

kakinkgb 发表于 2008-7-6 19:05:52

做病毒呀:face (31):
页: [1]
查看完整版本: 这个代码为什么有时行,有时不行。。