Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вход в сетевую папку 
:(
    Опции темы
Igor Graf
Дата 28.4.2005, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 10.2.2005

Репутация: нет
Всего: нет



Привет программистам!
Этот вопрос я как-то пытался задать, но мне сказали, что это уже было и не ответили. Не знаю , вроде весь форум тогда облазил, но так и не нашел .

Вопрос о том , как можно програмно войти в папку с открытым доступом и известным паролем.
Допустим на серваке есть папка, которую специально для меня выделили, там лежат мои бд и прога моя туда ломится. Так вот запускаю я программу (свою) и появляется окно ввода пароля, чтоб в эту папку войти, вопрос в том как сделать чтобы это окно не появлялось, и пароль автоматом читался. Если кто видел инфу по этому вопросу, то пожалуйста дайте ссылку.
Заранее спасибо.


С уважением Graf
PM MAIL   Вверх
amt
Дата 28.4.2005, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 26.10.2004
Где: г. Волгоград

Репутация: 3
Всего: 3



Проблемой доступа к папке с паролем я много занимался и решил ее следующим образом.
Сразу оговорюсь - для Win98.
Есть досовская команда net use.
В своей проге я запускаю comman.com с параметрами. Сейчас под рукой кода нет, потому могу напутаь\ть, но что-то вроде того:
Shell ("c:\command.com /c net use \\имя_компа\папка пароль")
Если нужно посмотрю у себя и напишу код. А вообще посмотри справку по net use, там еще есть дополнение, чтобы пароль не записывался в файл паролей.
Если еще какие вопросы - пиши.
--------------------
С точки зрения банальной эрудиции не каждый индивидуум способен игнорировать тенденции парадоксальных эмоций.
PM MAIL   Вверх
Igor Graf
Дата 28.4.2005, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 10.2.2005

Репутация: нет
Всего: нет



Спасибо amt идея понятна , код тоже не помешал бы smile . Для XP наверное что-то в этом духе можно замутить?. Еще раз спасибо, буду смотреть, эксперементировать.

Да кстати имя компа какого , сервера или локального?

С уважением Graf

Это сообщение отредактировал(а) Igor Graf - 28.4.2005, 08:17
PM MAIL   Вверх
amt
Дата 28.4.2005, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 26.10.2004
Где: г. Волгоград

Репутация: 3
Всего: 3



На счет XP.
Моя прога, которую я делал, предназначена для копирования файлов и папок на большое количество машин по локальной сети. В принципе я добился того, что даже не надо иметь общую папку на компах в сети. Прога сама дает доступ целиком к машинам и можно делать все, что хочешь. Но на ОС типа 2k иная политика безопасности и в 2000-ом (сам пробовал) были проблемы. Но зная точно политику безопасности, думаю можно и в XP сделать.
Удачи!



Это сообщение отредактировал(а) amt - 28.4.2005, 08:31
--------------------
С точки зрения банальной эрудиции не каждый индивидуум способен игнорировать тенденции парадоксальных эмоций.
PM MAIL   Вверх
amt
Дата 28.4.2005, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 26.10.2004
Где: г. Волгоград

Репутация: 3
Всего: 3



Имя компа на котором общая папка, в которую хочешь войти.

--------------------
С точки зрения банальной эрудиции не каждый индивидуум способен игнорировать тенденции парадоксальных эмоций.
PM MAIL   Вверх
Igor Graf
Дата 28.4.2005, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 10.2.2005

Репутация: нет
Всего: нет



Ясно , если не трудно потом код скинь пожалуйста
PM MAIL   Вверх
amt
Дата 28.4.2005, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 26.10.2004
Где: г. Волгоград

Репутация: 3
Всего: 3



Смогу только либо сегодня вечером, а скорее завтра утром.
--------------------
С точки зрения банальной эрудиции не каждый индивидуум способен игнорировать тенденции парадоксальных эмоций.
PM MAIL   Вверх
Naghual
Дата 28.4.2005, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



amt
Будет очень интересно поглядеть. А то есть у меня необходимость в написании бекапа сетевого.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
amt
Дата 28.4.2005, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 26.10.2004
Где: г. Волгоград

Репутация: 3
Всего: 3



А что такое бекап?
--------------------
С точки зрения банальной эрудиции не каждый индивидуум способен игнорировать тенденции парадоксальных эмоций.
PM MAIL   Вверх
Naghual
Дата 28.4.2005, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Цитата
А что такое бекап?

Резервное архивирование данных.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
efedron
Дата 28.4.2005, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 16.3.2005

Репутация: 4
Всего: 4



Igor Graf
чтобы окошко с паролем не вылетало попробуй сначала установить сетевое соединение (типа net use, только программно)
Код

Private Declare Function WNetAddConnection Lib "mpr.dll" Alias "WNetAddConnectionA" (ByVal lpszNetPath As String, ByVal lpszPassword As String, ByVal lpszLocalName As String) As Long
Const WN_SUCCESS = 0
Const WN_NET_ERROR = 2
Const WN_BAD_PASSWORD = 6
Function AddConnection(MyShareName As String, MyPWD As String, UseLetter As String) As Integer
AddConnection = WNetAddConnection(MyShareName, MyPWD, UseLetter)
End Function
Private Sub Form_Load()
Dim iRet As Integer
    iRet = AddConnection("\\remotecomp\e$", "пароль", "")
Select Case iRet
    Case WN_SUCCESS
        MsgBox "OK"
    Case WN_NET_ERROR
        MsgBox "ошибка"
    Case WN_BAD_PASSWORD
        MsgBox "Неправильный пароль"
End Select
End Sub


--------------------
Прежде чем совершить акт разрезания определенной материи целесообразно удостовериться в правильности всех произведенных измерений.
PM MAIL   Вверх
Naghual
Дата 28.4.2005, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



2 efedron
А как потом с этим соединением работать?


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
amt
Дата 28.4.2005, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 26.10.2004
Где: г. Волгоград

Репутация: 3
Всего: 3



Вот вам то, что обещал.

Код

'На всякий случай
'определяет имя текущего компа
Public Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
'Где-нибудь
Dim curComp As String, curComp1 As String, k1 as integer
GetComputerName curComp, 255
k1 = 1
15 curComp1 = Mid(curComp, k1, 1)
If curComp1 <> Chr(0) Then
    k1 = k1 + 1
    GoTo 15
    End If
curComp1 = Mid(curComp, 1, k1 - 1)
'------------------------------------------------------
'Код для ожидания окончания выполнения операций приложением
Public Sub ExecCmd(cmdline$)
        Dim proc As PROCESS_INFORMATION
        Dim start As STARTUPINFO

        ' Инициализируем структуру STARTUPINFO:
        start.cb = Len(start)
        start.dwFlags = 1
        start.wShowWindow = 0
        
        ' Запускаем приложение:
        ret& = CreateProcessA(0&, cmdline$, 0&, 0&, 1&, _
           NORMAL_PRIORITY_CLASS, 0&, 0&, start, proc)

        ' Ждем завершения запущенного приложения:
        ret& = WaitForSingleObject(proc.hProcess, INFINITE)
        ret& = CloseHandle(proc.hProcess)
     End Sub
'Функцией ExecCmd() будет запускаться приложение в невидимом режиме.
'--------------------------------
'Если нужно
'Просмотр имен всех компов, подключенных к ЛС.
ExecCmd ("C:\WINDOWS\command.com /c net view > c:\имя_файла")
'Где:
'ExecCmd - процедура, заставляющая прогу ждать окончания выполнения приложения.
'command.com /c - запуск командного процессора, с последующим завершением (автоматически) после выполнения команды
'net view - просмотр компов в сети
'> c:\имя_файла - перенаправление результата просмотра в текстовый файл.

''-----------------------------------------------------------
'Для получения доступа
'полный доступ к компу
str1 = "C:\WINDOWS\command.com /c net use \\имя_компа\ADMIN$ пароль /savepw:no"
'доступ к общей папке
str1 = "C:\WINDOWS\command.com /c net use \\имя_компа\имя_общей_папки пароль /savepw:no"
ExecCmd (str1)

'Если не поставить ключ /savepw:no, то пароль будет записан в файл паролей.
'Ну а дальше с удаленным компом или папкой можно работать как с обычными папками своего компа.
'------------------------------------------------------------
'после получения доступа к папке или компу с твоего компа любой может обратиться к этим ресурсам.
'Чтобы этого не было где-нибудь (например, после закрытия формы или все твоей проги) поставь:

'отключение всех ресурсов (имеется ввиду общие папки, к которым был получен доступ. Одна команда работает для всех компов к папкам которых, был получен доступ.
ExecCmd ("C:\WINDOWS\command.com /c net use * /delete /yes") 
'Для отключения полного доступа с каждым компом придется работать отдельно
ExecCmd ("C:\WINDOWS\command.com /c net use \\имя_компа\ADMIN$ /delete /yes")
Я сначала дал код для Shell (просто под рукой проги не было), но это вообще-то не подойдет.
Если запускать command.com, то открывается ДОСовское окно и если возникают ошибки то окно просто закрывается (ключ /с) и могут быть проблемы. Кроме того, сеть еще может быть не прохрюкалась и получается тоже самое. Поэтому лучше юзать ExecCmd (). Кстати, мне это кто-то на форуме подкинул (уже не помню кто) – огромное спасибо!

!!!Очень внимательно с пробелами в командах!!!
Еще раз напомню что это все классно работает под Win98. С Win2k нужно поработать.
Надеюсь хоть чем-то помог. Будут вопросы – пишите.
Удачи!

--------------------
С точки зрения банальной эрудиции не каждый индивидуум способен игнорировать тенденции парадоксальных эмоций.
PM MAIL   Вверх
Igor Graf
Дата 30.4.2005, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 10.2.2005

Репутация: нет
Всего: нет



Спасибо всем за участие! Будем разбираться.
Да Amt ты не мог-бы пояснить kernel32 это библиотека ? и Для чего она служит?

Это сообщение отредактировал(а) Igor Graf - 30.4.2005, 08:27
PM MAIL   Вверх
Exception
Дата 1.5.2005, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Цитата(Igor @ 30.4.2005, 09:24)
kernel32 это библиотека ? и Для чего она служит?

Она служит ядром (!) Win 9x и одной из важнейшх библиотек WinNT. Т.е. 200 и XP. В ней находятся важнейшие ф-ции система, такие как: управление процессами, выключение компа и т.п. Правда, в NT многие ф-ции kernel32 являются на самом деле обращениями к ntdll.dll и ntoskrnl.dll . Это - ядро NT.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0549 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.