Контроль открытых кем-то файлов

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Random
Новичок
Новичок
Аватара пользователя
 
Сообщения: 45
Зарегистрирован: 21.02.2006 (Вт) 6:08
Откуда: Пермь

Контроль открытых кем-то файлов

Сообщение Random » 27.03.2011 (Вс) 19:03

Доброго времени суток! Давненько не посещял я этот славный форум.
И как всегда прошу помочь с кодом. Проблема такая: никак до меня не дойдёт как программно в WinХР (и вообще)
отследть какие в данный момент открыты файлы пользователями в сети (однораанговой).
Так же как мы все можем посмотреть кто у нас копается в компе: "Управление компьютером" -----> "Открытые файлы".
В идеале хочу иметь возможность управлять этим доступом (закрывать или даже довать доступ в соответсвии с некоторым фильтром).
Заранее багодарен :)
:)

Random
Новичок
Новичок
Аватара пользователя
 
Сообщения: 45
Зарегистрирован: 21.02.2006 (Вт) 6:08
Откуда: Пермь

Re: Контроль открытых кем-то файлов

Сообщение Random » 29.03.2011 (Вт) 19:37

Хотя бы имя API ? Просто, понимаете, у меня вооще нет вариантов как это сделать. :?:
:)

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Re: Контроль открытых кем-то файлов

Сообщение NashRus » 29.03.2011 (Вт) 20:29

NET FILE
и смотри какие функции эта утилита импортирует.

Random
Новичок
Новичок
Аватара пользователя
 
Сообщения: 45
Зарегистрирован: 21.02.2006 (Вт) 6:08
Откуда: Пермь

Re: Контроль открытых кем-то файлов

Сообщение Random » 29.03.2011 (Вт) 22:04

NashRus писал(а):NET FILE
и смотри какие функции эта утилита импортирует.

Это вариант, спасибо. Только консоль не очень удобна.
Мне хотель бы что-то вроде NetShareGetInfo.
Мои попытки использовать ее, чтобы показать открытые файлы не увенчались успехом.
:)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Контроль открытых кем-то файлов

Сообщение Хакер » 29.03.2011 (Вт) 22:24

Random писал(а):Это вариант, спасибо. Только консоль не очень удобна.

Тебе не утилиты предложили для использования, а в качестве источника информации о том, какие функции требуются, чтобы получить нужны тебе данные.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Random
Новичок
Новичок
Аватара пользователя
 
Сообщения: 45
Зарегистрирован: 21.02.2006 (Вт) 6:08
Откуда: Пермь

Re: Контроль открытых кем-то файлов

Сообщение Random » 29.03.2011 (Вт) 22:53

Хакер писал(а):
Тебе не утилиты предложили для использования, а в качестве источника информации о том, какие функции требуются, чтобы получить нужны тебе данные.


Для меня это не элементарно. Очевидно какое-то средство для просмотра экпортируемых фунций есть?
:)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Контроль открытых кем-то файлов

Сообщение Хакер » 29.03.2011 (Вт) 22:55

Dependency Viewer — оконная ултита в составе Visual Studio.
dumpbin — консольная утилита в составе Visual Studio (ставится вроде вместе с MSVC++).
Куча сторонных утилит вроде PE Explorer-ов и тому подобного.
Можно посмотреть в отладчике OllyDbg.
Гуру могут посмотреть и в Hex-редакторе.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Random
Новичок
Новичок
Аватара пользователя
 
Сообщения: 45
Зарегистрирован: 21.02.2006 (Вт) 6:08
Откуда: Пермь

Re: Контроль открытых кем-то файлов

Сообщение Random » 01.04.2011 (Пт) 17:17

Да там чёрт ногу сломит...
Например:
function WNetOpenEnumW(dwScope, dwType, dwUsage: DWORD; lpNetResource: PNetResourceW;
var lphEnum: THandle): DWORD; stdcall; external 'mpr.dll' name 'WNetOpenEnumW' index 66;

Все описания для СИ... Как ЭТО переварить в VB? / или хотяб ы как определить искомую?
Последний раз редактировалось Random 01.04.2011 (Пт) 17:19, всего редактировалось 1 раз.
:)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Контроль открытых кем-то файлов

Сообщение Хакер » 01.04.2011 (Пт) 17:19

Это в жизни не описание для Си. Это описание для отвратительного Delphi. В VB6 переварить элементарно при наличии базовых познаниях о типах. Задавай более конкретные вопросы, ответы на которые позволяет тебе понять механизм переваривания — ответим.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Контроль открытых кем-то файлов

Сообщение Хакер » 01.04.2011 (Пт) 17:48

Вообще говоря, лентяи обычно не переводят, а ищут готовое: «Declare Function WNetOpenEnum»
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Random
Новичок
Новичок
Аватара пользователя
 
Сообщения: 45
Зарегистрирован: 21.02.2006 (Вт) 6:08
Откуда: Пермь

Re: Контроль открытых кем-то файлов

Сообщение Random » 01.04.2011 (Пт) 18:40

Сейчас сижу морщу лоб...Вот, выстрадал пару АПИ.

Declare Function WNetOpenEnum Lib "mpr.dll" Alias "WNetOpenEnumA" (ByVal dwScope As Long, ByVal dwType As Long, ByVal dwUsage As Long, lpNetResource As NETRESOURCE, lphEnum As Long) As Long
Declare Function WNetEnumResource Lib "mpr.dll" Alias "WNetEnumResourceA" (ByVal hEnum As Long, lpcCount As Long, lpBuffer As Any, lpBufferSize As Long) As Long

Осталось проверить что можно из них выудить что-то.
-------------------------------------------------------------------------
ПС.
Попутно нашел программку на Делфи, делающию все что я хотел.
Знатоки на верном ли я пути? http://www.delphimaster.ru/articles/netmon/index.html
:)

Random
Новичок
Новичок
Аватара пользователя
 
Сообщения: 45
Зарегистрирован: 21.02.2006 (Вт) 6:08
Откуда: Пермь

Re: Контроль открытых кем-то файлов

Сообщение Random » 01.04.2011 (Пт) 18:42

Хакер писал(а):Вообще говоря, лентяи обычно не переводят, а ищут готовое: «Declare Function WNetOpenEnum»

Думаете я не искал готовое? :bom:
:)

Random
Новичок
Новичок
Аватара пользователя
 
Сообщения: 45
Зарегистрирован: 21.02.2006 (Вт) 6:08
Откуда: Пермь

Re: Контроль открытых кем-то файлов

Сообщение Random » 23.07.2011 (Сб) 7:49

Нашел решение.Точнее нужную ф-ю:
Код: Выделить всё
Private Declare Function NetSessionEnum Lib "netapi32" _
  (ByVal servername As Long, _
   ByVal UncClientName As Long, _
   ByVal username As Long, _
   ByVal level As Long, _
   bufptr As Long, _
   ByVal prefmaxlen As Long, _
   entriesread As Long, _
   totalentries As Long, _
   resume_handle As Long) As Long
   

К сожалению самостоятельно не получилось создать программный код. Кому интересно решение см. здесь :
http://www.freevbcode.com/ShowCode.asp?ID=8501
:)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 81

    TopList