
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
24.02.2008, 13:59
|
|||
|---|---|---|---|
|
|||
? FindFirstCangeNottification из Win32Api в Фоксе |
|||
|
#18+
Подскажите пожалуйста, как применить функцию FindFirstCangeNottification из Win32Api для запуска фоксовского обработчика события. Нужно определить(обработать) событие появление файла в папке. А также функции FindNextCangeNottification и FindCloseCangeNottification Если можно покажите простой пример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2008, 12:50
|
|||
|---|---|---|---|
|
|||
? FindFirstCangeNottification из Win32Api в Фоксе |
|||
|
#18+
Я разобрался с этой функцией. Обработчик на это событие повесить НЕ УДАЛОСЬ - VFP может только пассивно(ничего не выполняя в момент ожидания) ждать, когда произойдёт событие. Активный способ проверки - Timer. Пример: =WaitForFileChanges("C:\capture") *--------------------------------------------------------------- #define WAIT_OBJECT_0 0 #define INVALID_HANDLE_VALUE -1 #define INFINITE 0xFFFFFFFF && Infinite timeout бесконечно ждём #define FILE_NOTIFY_CHANGE_FILE_NAME 0x00000001 #define FILE_NOTIFY_CHANGE_DIR_NAME 0x00000002 #define FILE_NOTIFY_CHANGE_ATTRIBUTES 0x00000004 #define FILE_NOTIFY_CHANGE_SIZE 0x00000008 #define FILE_NOTIFY_CHANGE_LAST_WRITE 0x00000010 #define FILE_NOTIFY_CHANGE_LAST_ACCESS 0x00000020 #define FILE_NOTIFY_CHANGE_CREATION 0x00000040 #define FILE_NOTIFY_CHANGE_SECURITY 0x00000100 *--------------------------------------------------------------- PROCEDURE WaitForFileChanges(strPath) DECLARE Long FindFirstChangeNotification IN WIN32API ; String PathName, Long bWatchSubTree, Long dwNotifyFilter DECLARE Long WaitForSingleObject IN WIN32API ; Long hHandle, Long dwMilliseconds DECLARE LONG FindCloseChangeNotification IN kernel32 ; INTEGER hChangeHandle LOCAL dwChangeHandle, dwWaitStatus dwChangeHandle = FindFirstChangeNotification(strPath,.F.,FILE_NOTIFY_CHANGE_FILE_NAME) * strPath && directory to watch * .F. && do not watch the subtree * FILE_NOTIFY_CHANGE_FILE_NAME && watch file name changes If (dwChangeHandle = INVALID_HANDLE_VALUE) ERROR "Ошибка FindFirstChangeNotification " Else dwWaitStatus = WaitForSingleObject(dwChangeHandle, INFINITE) && ждём сообщения If dwWaitStatus = WAIT_OBJECT_0 && Process changes here MESSAGEBOX("Изменения файлов в " + strPath + " folder.") EndIf ENDIF ? FindCloseChangeNotification(dwChangeHandle) && снимаем наблюдение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=41&tablet=1&tid=1588106]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
82ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
| others: | 226ms |
| total: | 402ms |

| 0 / 0 |
