2009-03-25 5 views
1

Я кодирую программу для мониторинга удаленного каталога, , и я использую API окон: WNetAddConnection. Я использую его для сопоставления удаленного каталога с Z: с помощью указанного пользователя/пароля.как отключить удаленный каталог Windows?

После того как я поставил эту программу в рабочую среду, кто-то использует расположение проводника «\ 192.168.xx \ somedir», чтобы войти в тот же каталог, Мониторя, и это делает моя программа не может подключиться к этой директории, так что я должны попросить этих людей не делать этого, но я не могу заставить их этого не делать.

Так что я хочу знать, есть ли способ отключить все другие соединения, или провидеть, что они делают эту вещь, Кто-нибудь знает как?

Кстати, я не эксперт в окнах, я не знаю детали окон сети (или то, что эта ошибка действительно означает), может кто-нибудь сказать мне, где документация для окон сети?

+0

Я не знаю, почему, когда люди используют проводник и поставить место: «\ 192.168.xx \ somedir» и пользователей их пользователь/pwd, моя программа не сможет подключить один и тот же общий каталог. – linjunhalida

+0

Это ограничение Microsoft. Один клиент Windows, обращающийся к общим ресурсам на одном сервере Windows, должен использовать одинаковое имя пользователя и пароль для всех доступных им акций. –

ответ

1

Гадкий вариант:

Можно разобрать выход «чистого использования», а затем разъединить соединения вам не нравится с помощью «чистого использования/д»

(WNetCancelConnection2 кажется API, что сетчатая польза/d используется)

1
WNetCancelConnection2 

Но это не самое дружелюбное отношение к людям.

+0

Мы разрабатываем программу, которая используется только на нашем заводе, а пользователи - рабочие ... – linjunhalida

0

Не уверен, что API, но чистый сеанс/удаление, отключит все открытые сеансы до общего ресурса.

0

вы можете сделать это следовать шаг: 1, запустите порядок, чтобы удалить всю чистую пользователя и ПАРОЛЬ, заказ: rundll32.exe shell32.dll, Control_RunDLL keymgr.dll 2, удалите всю информацию пользователя сети в памяти, используя команду ord эр: net use * /delete /y или вы можете создать один файл бита йоты информации последующей:

@echo off 
rundll32.exe shell32.dll,Control_RunDLL keymgr.dll 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y 

net use 
net use 
net use 

net use * /delete /y 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y 
Смежные вопросы