终于找到了
在Win9x下面可以利用Wininit.ini文件来替换文件,那么在NT/2000/XP下如何做呢?
可以利用MoveFileEx() API来做,记住:必须用MOVEFILE_DELAY_UNTIL_REBOOT标志。
<> MoveFileEx <>
这个函数允许我们对一个指定的文件或目录改名。但是如果我们在dwFlags中指定为TMOVEFILE_DELAY_UNTIL_REBOOT(仅对NT/2000有效),那么这次更动会在重启之后生效,系统会在重启之后删除或改改我们指定的文件。
用法:
MoveFileEx(ExistingFN, NewFN, MOVEFILE_REPLACE_EXISTING)
MoveFileEx(ExistingFN, NewFN, MOVEFILE_DELAY_UNTIL_REBOOT)
其中:
ExistingFN 为指定的文件或目录的路径。
NewFN 为新的文件或目录名。
标志 MOVEFILE_REPLACE_EXISTING 告诉函数如果文件或目录存在则改写它的名称。
如果 NewFN 设为 nil,那么则将其删除
例子:
移动文件:
MoveFileEx('c:/winnt/system32/kernel32.dll', 'd:/winnt.bak/system32/kernel32.dll',MOVEFILE_REPLACE_EXISTING);
MoveFileEx('c:/winnt/system32/kernel32.dll', 'd:/winnt.bak/system32/kernel32.dll',MOVEFILE_DELAY_UNTIL_REBOOT);
删除文件:
MoveFileEx('c:winnt/system32/kernel32.dll', nil,MOVEFILE_REPLACE_EXISTING);
MoveFileEx('c:winnt/system32/kernel32.dll', nil,MOVEFILE_DELAY_UNTIL_REBOOT);
呜呜,可惜分不能给我自己 :(