Ниже приведен код, у кого есть интерес и настроение протестировать напишите что получилось, может подскажете где я заблудился. Все это сочинялось в Win ME, процессор – 633, оперативная память – 256. Для удобства я собрал 4 отдельных проекта в одну кучу, при создании/удалении любого файла/каталога на диске "С:\", должно появиться сообщение. Теперь, в чем проблема: - Сама программа работает, но очень медленно, при открытии каталога возникает впечатление, что одновременно с приостановкой процесса приложения повесилась вся система, но если набраться терпения можно дождаться результата. Если сначала вырубить программу при помощи "Ctrl-Alt-Del", то потом она соображает быстрее. Причем время задержки практически не зависит от того, скомпилирован проект или нет, проверяются ли одновременно все 4 объекта оповещения, или же программа работает только с одним (я проверял их сначала по одиночке, потом все вместе). Как я понимаю – всего этого быть не должно. - При первом запуске программы, или при запуске после сохранения проекта, объект оповещения сбрасывается в установленное состояние до внесения изменений в файловую систему, т.е. обрабатываются события произошедшие до того как программа начала работу. Хотелось бы это исправить, но здесь я просто не знаю с чего начать. И последнее… В этом примере объект оповещения сбрасывается в установленное состояние после внесения пользователем изменений в файловую систему, а как определить аналогичные действия пользователя до того, как откроется файл, каталог и т.д. J ‘******************************************************************** КОД ‘******************************************************************** В форму "Project1.Main": 2 кнопки "Старт" и "Выход" и это: Option Explicit Dim Scaning As Object ' Модуль класса Private Sub Form_Load() Set Scaning = CreateObject("Project2.SCAN") 'Экземпдяр модуля класса End Sub Private Sub Command1_Click() Scaning.DirectoryTree = "C:\" ' Запускает отслеживание изменений в файловой системе End Sub ' Выход из программы Private Sub Command2_Click() Scaning.EndScan = True Set Scaning = Nothing Unload Me End Sub Private Sub Form_Unload(Cancel As Integer) Set Main = Nothing End Sub Ответить
|