Functionality -------------- This adds FileFindFirstFile and FileFindNextFile Based on sources ---------------- v3.0.69 *********************************************************** ******************* script.cpp *********************************************************** in Constructor() add // Initialise file handles to NULL m_hFileHandle = NULL; in Destructor() add // Close any file handles that script writer has not close (naughty!) if (m_hFileHandle != NULL) FindClose(m_hFileHandle); to functions list add "FileFindFirstFile", "FileFindNextFile" to parameters list add {1,1}, {0,0} to giant case structure add case F_FINDFIRSTFILE: return FileFindFirstFile(vParams[0].szValue(), vResult); case F_FINDNEXTFILE: return FileFindNextFile(vResult); *********************************************************** ****************** script.h *********************************************************** add F_FINDFIRSTFILE, F_FINDNEXTFILE add HANDLE m_hFileHandle; // File Handle for Find File functions add AUT_RESULT FileFindFirstFile(const char *szFile, Variant &vResult); AUT_RESULT FileFindNextFile(Variant &vResult); *********************************************************** ***************** script_file.cpp *********************************************************** /////////////////////////////////////////////////////////////////////////////// // FileFindFirstFile() // Returns the first file found according to search string. /////////////////////////////////////////////////////////////////////////////// AUT_RESULT AutoIt_Script::FileFindFirstFile(const char *szFile, Variant &vResult) { WIN32_FIND_DATA wfd; HANDLE hFile; hFile = FindFirstFile(szFile, &wfd); if ( hFile == INVALID_HANDLE_VALUE ) { SetFuncErrorCode(1); return AUT_OK; } m_hFileHandle = hFile; vResult = wfd.cFileName; return AUT_OK; } // FileFindFirstFile() /////////////////////////////////////////////////////////////////////////////// // FileFindNextFile() // Returns the next file found according to a previous call to FileFindFirstFile. /////////////////////////////////////////////////////////////////////////////// AUT_RESULT AutoIt_Script::FileFindNextFile(Variant &vResult) { WIN32_FIND_DATA wfd; if ( m_hFileHandle == NULL ) { SetFuncErrorCode(1); return AUT_OK; } if ( !FindNextFile(m_hFileHandle, &wfd) ) { SetFuncErrorCode(1); FindClose(m_hFileHandle); m_hFileHandle = NULL; } else vResult = wfd.cFileName; return AUT_OK; } // FileFindNextFile()