Replace Scripting.FileSystemObject MoveFile with Win32API equivalent
This commit is contained in:
@@ -25,7 +25,7 @@ _LegalCopyright = "Creative Commons 4: Reconocimiento - CompartirIgual (by-sa):
|
|||||||
_LegalTrademark = "Creative Commons 4: Reconocimiento - CompartirIgual (by-sa): http://creativecommons.org/licenses/by/4.0/"
|
_LegalTrademark = "Creative Commons 4: Reconocimiento - CompartirIgual (by-sa): http://creativecommons.org/licenses/by/4.0/"
|
||||||
_ProductName = "FILENAME_CAPS"
|
_ProductName = "FILENAME_CAPS"
|
||||||
_MajorVer = "2"
|
_MajorVer = "2"
|
||||||
_MinorVer = "3"
|
_MinorVer = "4"
|
||||||
_Revision = "0"
|
_Revision = "0"
|
||||||
_LanguageID = ""
|
_LanguageID = ""
|
||||||
_AutoIncrement = "0"
|
_AutoIncrement = "0"
|
||||||
@@ -33,7 +33,7 @@ _AutoIncrement = "0"
|
|||||||
|
|
||||||
|
|
||||||
*<BuildProj>
|
*<BuildProj>
|
||||||
*<.HomeDir = 'c:\desa\filename_caps' />
|
*<.HomeDir = 'c:\desa\foxbin2prg\filename_caps' />
|
||||||
|
|
||||||
FOR EACH loProject IN _VFP.Projects FOXOBJECT
|
FOR EACH loProject IN _VFP.Projects FOXOBJECT
|
||||||
loProject.Close()
|
loProject.Close()
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -45,19 +45,34 @@ RETURN lcFileName
|
|||||||
|
|
||||||
DEFINE CLASS cl_FileName_Caps AS Custom
|
DEFINE CLASS cl_FileName_Caps AS Custom
|
||||||
|
|
||||||
|
PROCEDURE INIT
|
||||||
|
DECLARE INTEGER MoveFile IN KERNEL32.DLL STRING lpExistingFileName, STRING lpNewFileName
|
||||||
|
DECLARE INTEGER GetLastError IN KERNEL32.DLL
|
||||||
|
|
||||||
|
* DOCUMENTACI<43>N: https://msdn.microsoft.com/en-us/library/windows/desktop/ms679351(v=vs.85).aspx
|
||||||
|
DECLARE INTEGER FormatMessage IN KERNEL32.DLL INTEGER dwFlags, INTEGER lpSource, INTEGER dwMessageId ;
|
||||||
|
, INTEGER dwLanguageId, STRING @lpBuffer, INTEGER nSize, INTEGER Arguments
|
||||||
|
_SCREEN.AddProperty("ExitCodeFNC",0)
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
PROCEDURE Capitalize
|
PROCEDURE Capitalize
|
||||||
LPARAMETERS tcFileName, tcFileMask, tcFileMaskType, tcLog, tlRelanzarError, tcDontShowErrors
|
LPARAMETERS tcFileName, tcFileMask, tcFileMaskType, tcLog, tlRelanzarError, tcDontShowErrors
|
||||||
|
|
||||||
TRY
|
TRY
|
||||||
LOCAL loEx AS EXCEPTION, laMasks(1,4), lcDefinition, lcFileDef, lcMaskDef, laLines(1), lcMenErr ;
|
LOCAL loEx AS EXCEPTION, laMasks(1,4), lcDefinition, lcFileDef, lcMaskDef, laLines(1), lcMenErr ;
|
||||||
, I, X, lcName, lcExt, lcPath, lcFileName, laFile(1,5), lcLogFile, lcSys16, lnPosProg ;
|
, I, X, lcName, lcExt, lcPath, lcFileName, laFile(1,5), lcLogFile, lcSys16, lnPosProg, lnRet
|
||||||
, loFSO AS Scripting.FileSystemObject
|
|
||||||
|
|
||||||
|
lnRet = 0
|
||||||
loEx = NULL
|
loEx = NULL
|
||||||
loFSO = CREATEOBJECT('Scripting.FileSystemObject')
|
|
||||||
tcFileMaskType = EVL(tcFileMaskType,'M')
|
tcFileMaskType = EVL(tcFileMaskType,'M')
|
||||||
lcFileName = tcFileName
|
lcFileName = tcFileName
|
||||||
lcLogFile = FORCEEXT(SYS(16),'LOG')
|
lcSys16 = SYS(16)
|
||||||
|
IF LEFT(lcSys16,10) == 'PROCEDURE '
|
||||||
|
lnPosProg = AT(" ", lcSys16, 2) + 1
|
||||||
|
ELSE
|
||||||
|
lnPosProg = 1
|
||||||
|
ENDIF
|
||||||
|
lcLogFile = FORCEEXT( SUBSTR( lcSys16, lnPosProg ), 'LOG' )
|
||||||
tcLog = ''
|
tcLog = ''
|
||||||
tcDontShowErrors = EVL( tcDontShowErrors, '0' )
|
tcDontShowErrors = EVL( tcDontShowErrors, '0' )
|
||||||
|
|
||||||
@@ -66,13 +81,6 @@ DEFINE CLASS cl_FileName_Caps AS Custom
|
|||||||
tcLog = tcLog + CR_LF + '- No hay m<>scara definida ni archivo de configuraci<63>n'
|
tcLog = tcLog + CR_LF + '- No hay m<>scara definida ni archivo de configuraci<63>n'
|
||||||
EXIT && No se indic<69> nada que hacer
|
EXIT && No se indic<69> nada que hacer
|
||||||
ELSE
|
ELSE
|
||||||
lcSys16 = SYS(16)
|
|
||||||
IF LEFT(lcSys16,10) == 'PROCEDURE '
|
|
||||||
lnPosProg = AT(" ", lcSys16, 2) + 1
|
|
||||||
ELSE
|
|
||||||
lnPosProg = 1
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
tcFileMask = FORCEEXT( SUBSTR( lcSys16, lnPosProg ), 'CFG' )
|
tcFileMask = FORCEEXT( SUBSTR( lcSys16, lnPosProg ), 'CFG' )
|
||||||
tcLog = tcLog + CR_LF + '- Se usar<61> el archivo de configuraci<63>n [' + tcFileMask + ']'
|
tcLog = tcLog + CR_LF + '- Se usar<61> el archivo de configuraci<63>n [' + tcFileMask + ']'
|
||||||
IF NOT FILE(tcFileMask)
|
IF NOT FILE(tcFileMask)
|
||||||
@@ -164,8 +172,18 @@ DEFINE CLASS cl_FileName_Caps AS Custom
|
|||||||
ENDIF
|
ENDIF
|
||||||
ENDFOR
|
ENDFOR
|
||||||
|
|
||||||
|
*MESSAGEBOX( 'lcLogFile = ' + TRANSFORM(lcLogFile),0+4096, 'Error' )
|
||||||
|
|
||||||
IF ADIR( laFile, lcFileName, '', 1 ) > 0 AND laFile(1,1) <> JUSTFNAME(lcFileName)
|
IF ADIR( laFile, lcFileName, '', 1 ) > 0 AND laFile(1,1) <> JUSTFNAME(lcFileName)
|
||||||
loFSO.MoveFile( FORCEPATH( laFile(1,1), JUSTPATH(lcFileName) ), lcFileName )
|
lnRet = MoveFile( FORCEPATH( laFile(1,1), JUSTPATH(lcFileName) ), lcFileName )
|
||||||
|
*MESSAGEBOX('(MoveFile) lnRet = ' + TRANSFORM(lnRet),0+4096, 'Error')
|
||||||
|
|
||||||
|
IF lnRet = 0 && Failed
|
||||||
|
lnRet = GetLastError()
|
||||||
|
*MESSAGEBOX('(GetLastError) lnRet = ' + TRANSFORM(lnRet),0+4096, 'Error')
|
||||||
|
ERROR 'MoveFile'
|
||||||
|
ENDIF
|
||||||
|
|
||||||
tcLog = tcLog + CR_LF + ' => Se renombrar<61> a [' + lcFileName + ']'
|
tcLog = tcLog + CR_LF + ' => Se renombrar<61> a [' + lcFileName + ']'
|
||||||
ELSE
|
ELSE
|
||||||
tcLog = tcLog + CR_LF + ' => No se renombrar<61> a [' + lcFileName + '] porque ya estaba correcto.'
|
tcLog = tcLog + CR_LF + ' => No se renombrar<61> a [' + lcFileName + '] porque ya estaba correcto.'
|
||||||
@@ -173,6 +191,19 @@ DEFINE CLASS cl_FileName_Caps AS Custom
|
|||||||
|
|
||||||
|
|
||||||
CATCH TO loEx
|
CATCH TO loEx
|
||||||
|
_SCREEN.ExitCodeFNC = loEx.ErrorNo
|
||||||
|
|
||||||
|
IF loEx.ErrorNo = 1098 && User defined error
|
||||||
|
IF LOWER(loEx.Message) == 'movefile'
|
||||||
|
* SE OBTIENE EL MENSAJE DE ERROR DEL SISTEMA CORRESPONDIENTE A GetLastError()
|
||||||
|
* FORMAT_MESSAGE_FROM_SYSTEM 0x00001000
|
||||||
|
LOCAL lnRetLen, lpBuffer
|
||||||
|
lpBuffer = REPLICATE(CHR(0),256)
|
||||||
|
lnRetLen = FormatMessage(0x00001000,0,lnRet,0,@lpBuffer,256,0)
|
||||||
|
loEx.Message = LEFT(lpBuffer, lnRetLen)
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
|
||||||
IF tlRelanzarError THEN
|
IF tlRelanzarError THEN
|
||||||
THROW
|
THROW
|
||||||
ELSE
|
ELSE
|
||||||
@@ -190,7 +221,6 @@ DEFINE CLASS cl_FileName_Caps AS Custom
|
|||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
FINALLY
|
FINALLY
|
||||||
loFSO = NULL
|
|
||||||
tcFileName = lcFileName
|
tcFileName = lcFileName
|
||||||
|
|
||||||
*-- Si existe FileName_Caps.LOG, lo actualiza
|
*-- Si existe FileName_Caps.LOG, lo actualiza
|
||||||
|
|||||||
@@ -48,7 +48,11 @@ Else
|
|||||||
Next
|
Next
|
||||||
|
|
||||||
If GetBit(nDebug, 4) Then
|
If GetBit(nDebug, 4) Then
|
||||||
|
If nExitCode = 0 Then
|
||||||
MsgBox "End of Process!", 64, WScript.ScriptName
|
MsgBox "End of Process!", 64, WScript.ScriptName
|
||||||
|
Else
|
||||||
|
MsgBox "End of Process!", 48, WScript.ScriptName
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -93,7 +97,7 @@ Private Sub evaluateFile( tcFile )
|
|||||||
MsgBox cCMD, 0, "PARAMETERS"
|
MsgBox cCMD, 0, "PARAMETERS"
|
||||||
Else
|
Else
|
||||||
nRet = oVFP9.DoCmd( cCMD )
|
nRet = oVFP9.DoCmd( cCMD )
|
||||||
'nExitCode = oVFP9.Eval("_SCREEN.ExitCode")
|
nExitCode = oVFP9.Eval("_SCREEN.ExitCodeFNC")
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user