Как заставить код дожидаться момента создания файла, приведите пример пожалуйста. Нужно чтото наподобие такого кода в Delphi repeat sleep(1000); until FileExists('c:\file'); <Дальнейшие действия> Тойсть зацикливание до момента создания файла Заранее спасибо
Сырцы Delphi мне подсказывают что надо юзать FindFirstFile, только вот что ему передавать _Fi: invoke FindFirstFile,_file,0 test al,al jz _Fi Хрень дает
читаем справку HANDLE FindFirstFile( LPCTSTR lpFileName, // pointer to name of file to search for LPWIN32_FIND_DATA lpFindFileData // pointer to returned information ); Parameters lpFileName Windows 95: Points to a null-terminated string that specifies a valid directory or path and filename, which can contain wildcard characters (* and ?). This string must not exceed MAX_PATH characters. Windows NT: Points to a null-terminated string that specifies a valid directory or path and filename, which can contain wildcard characters (* and ?). ... lpFindFileData Points to the WIN32_FIND_DATA structure that receives information about the found file or subdirectory. The structure can be used in subsequent calls to the FindNextFile or FindClose function to refer to the file or subdirectory. Return Values If the function succeeds, the return value is a search handle used in a subsequent call to FindNextFile or FindClose. If the function fails, the return value is INVALID_HANDLE_VALUE. To get extended error information, call GetLastError.
У зачем цикл ожидания? Ведь достаточно проверить наличие файла и если он не существует, то создать его. Или у тебя многопоточное приложение?
Справку читал, как использовать из асма совершенно не понял(в асме я почти полный ноль пока что) Файл создается другим приложением... Кому не сложно, дайте плз рабочий пример
Самый неясный момент, сорри за тупость, а как прочесть результат возвращаемый функцией? Вот есть функция ABC, ей передается pchar, возвращает bool вызываем так push _stroka call ABC Где искать этот bool?
.data filename db 'yyy.xxx',0 lpFindData WIN32_FIND_DATA <> .code @1: invoke FindFirstFile,addr filename,addr lpFindData or eax,eax js @1 должно работать, компилера под рукой нет. Qpwoe Читать описание для конкретной функции. Большинство функций возвращают, что-нибудь в eax. К примеру FindFirstFile возвращает в еах хендл для последующего использования FindNextFile и заполняет lpFindData при успехе, и INVALID_HANDLE_VALUE в еах при провале. p.s. WIN32_FIND_DATA описана в справке и в windows.inc
Сделал ag: mov eax,$00000000 invoke CopyFile,_file,testf,0 cmp eax,0 je ag invoke WinExec,_file,SW_NORMAL invoke ExitProcess,1
leo Намного, а потом нужно удостоверится, что GetLastError выдаст двойку, что означает, что файла не существует.