更新这仍未解决,我仍在寻找解决方案。
我正在尝试从UFT调用ReplaceFile API。
这是我的剧本:
Option Explicit
Private Const REPLACEFILE_WRITE_THROUGH=1
Private Const REPLACEFILE_IGNORE_MERGE_ERRORS=2
Private Const REPLACEFILE_IGNORE_ACL_ERRORS=4
Extern.Declare micInteger, "ReplaceFile", "Kernel32.dll", "ReplaceFileA", micString, micString, micString, micDWord, micLong, micLong
Dim lpReplacedFileName: lpReplacedFileName="C:\TEMP\T\alt.dat"
Dim lpReplacementFileName: lpReplacementFileName="C:\TEMP\T\neu.dat"
Dim lpBackupFileName: lpBackupFileName="C:\TEMP\T\bak.dat"
Dim dwReplaceFlags: dwReplaceFlags=REPLACEFILE_WRITE_THROUGH
Dim lpExclude: lpExclude=NULL
Dim lpReserved: lpReserved=NULL
Dim Result:
Result=Extern.ReplaceFile (lpReplacedFileName, lpReplacementFileName, lpBackupFileName, 0, lpExclude, lpReserved)
MsgBox GetLastError ()
如果我现在在c:\ temp中创建文件alt.dat,则在脚本运行时不会将其重命名为neu.dat。结果为0,GetLastError返回0,这可能意味着:未调用API函数,并且Extern.Declare没有告诉我我做错了什么。
那我该怎么办?