Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Отследить открытие папки. Добавлено: 26.06.06 14:12  

Автор вопроса:  LeX | Web-сайт: www.vbkoders.info | ICQ: 301424893 
Мне нужно программно в vs.net 2005 отследить открытие/закрытие папки (любой). Допустим я на рабочем столе щелкаю мышкой по папке 2 раза и в это время в моей проге происходит какое-то событие.
ЗЫ. Это вообще возможно? Если да - подскажите в какую сторону копать.
Всем спасибо за внимание!

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #1 Добавлено: 01.07.06 02:57
Скорее всего надо будет сабклассить окна Explorer'а, либо писать какие-то Extension'ы для него, вобщем все на грани невозможного и в принципе невозможного.

Ответить

Номер ответа: 2
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #2 Добавлено: 01.07.06 19:22
.net есть какой-то компонент, filesystemwatcher, посмотри, мож пригодится

Ответить

Номер ответа: 3
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #3 Добавлено: 01.07.06 19:34
Нет, его функциональность недостаточна для этой задачи.

Ответить

Номер ответа: 4
Автор ответа:
 z-dan-z



Вопросов: 1
Ответов: 7
 Профиль | | #4 Добавлено: 12.07.06 15:36


void __fastcall TDirWatch::Execute()
{
 if(path=="xxx";) Terminate();
 while(!Terminated)
{


  HANDLE hSubstDirChange= FindFirstChangeNotification(path.c_str(),false,FILE_NOTIFY_CHANGE_SIZE);
  if(hSubstDirChange!=INVALID_HANDLE_VALUE)
  {
    while(!Terminated)
     {
       WaitForSingleObject(hSubstDirChange,INFINITE);
       Synchronize(SayAboutChange);
       FindNextChangeNotification(hSubstDirChange);
       FindNextChangeNotification(hSubstDirChange);
     }
    FindCloseChangeNotification(hSubstDirChange);
   }
   else
   {
     ;DWORD er=GetLastError();
     char buf[256];
     er=FormatMessage(
     FORMAT_MESSAGE_FROM_SYSTEM,//0,// DWORD dwFlags, // source and processing options
     NULL,// LPCVOID lpSource, // pointer to message source
     er,// DWORD dwMessageId, // requested message identifier
     0,// DWORD dwLanguageId, // language identifier for requested message
     buf,// LPTSTR lpBuffer, // pointer to message buffer
     255,// DWORD nSize, // maximum size of message buffer
     NULL// va_list *Arguments // address of array of message inserts
     ;);
     ShowMessage("Ошибка потока "+path+":\n"+AnsiString(buf));
    }
}
Terminate();
}

извини, что на C , на Basic-ке пока не умею
этот код позволяет отследить изменение параметров файла в папке

Ответить

Номер ответа: 5
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #5 Добавлено: 12.07.06 17:52
Возможно отслеживать изменения в папке, в ВБ6 я бы посмотрел в этом случае в сторону ФСО.
Set objFSO = CreateObject("Scripting.FileSystemObject";)
Set objFolder = objFSO.GetFolder("C:\Tmp";)
List1.AddItem "Date created: " & objFolder.DateCreated
List1.AddItem "Date last accessed: " & objFolder.DateLastAccessed
List1.AddItem "Date last modified: " & objFolder.DateLastModified
List1.AddItem "Size: " & objFolder.Size
List1.AddItem "Type: " & objFolder.Type

 Просто открытие и закрытие папки при которых в ней ничего не меняется я думаю ослеживать не интересно.

Ответить

Номер ответа: 6
Автор ответа:
 z-dan-z



Вопросов: 1
Ответов: 7
 Профиль | | #6 Добавлено: 12.07.06 18:06
to AndrewMp
Мой вариант использования API функций позволяет делать это "на -лету" , а не по запросу

Ответить

Номер ответа: 7
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #7 Добавлено: 12.07.06 18:14
отслеживать изменения можно и без FSO .. в НЕТ для это есть свои средства.. а вот именно с открытием папки.. вот тут уже сложности...

Ответить

Номер ответа: 8
Автор ответа:
 student-uni



Вопросов: 122
Ответов: 257
 Профиль | | #8 Добавлено: 12.07.06 18:27
Есть класс во фрейм 2.0 позволяющий отследить изменения в папке. /На счёт открытия не знаю/

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам