USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Como compartilhando pastas em Rede através do VB
flavioschmitz
VITORIA
ES - BRASIL
ENUNCIADA !
Postada em 29/01/2008 10:27 hs         
Usei um codigo  aqui do site (na seção DICAS- redes/comunicações) para compartilhar um diretorio na rede.Fiz várias tentativas e até agora só consequi compartilhar somente diretorios na maquina local. No formload coloquei assim
Private Sub Form_Load()
   Text1.Text = "\" & "EST002"   <- outra maquina que preciso acessar
   Text2.Text = "D:Cristian"       <- é o diretorio que quero compartilhar
   Text3.Text = "acessoremoto"
   Text4.Text = "Compartilhamento texte"
   Text5.Text = ""
  End Sub
Quando rodo o programa aparece a mensagem :  Create error 5
Alquém pode me ajudar como fazer para compartilhar um diretorio em outra máquina?
   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 29/01/2008 10:36 hs            
faça o seguinte, eu verifiquei o código, mas eis uma pergunta qual é o objetivo deste compartilhamento, apenas salvar arquivos nesta pasta, compartilhar um banco de dados, porque existe maneiras mais simples pra isso.
 
explique o que deseja fazer
 
 
   
flavioschmitz
VITORIA
ES - BRASIL
ENUNCIADA !
Postada em 29/01/2008 11:32 hs         
Tenho um aplicação que roda Servidor/Estação. Para a maquina estação acessar o banco de dados no servidor preciso compartilhar o diretorio onde o programa está instalado lá no servidor.Então sempre tenho que pedir para o usuário fazer o compartilhamento do diretorio,e isso gera um trabalhado danado com pessoas leigas em informatica.Então estou procurando uma rotina que compartilha este diretorio do servidor através da estação apenas com o usuário clicando em um botão.Não sei se isso é possivel pois acho que não terei permissão de administrador do servidor.Deve ser por isso que está dando errado.
   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 29/01/2008 12:51 hs            
Bom colega o código que você pesquisou está funcionando que é uma beleza.
 
bom você entendeu como ele funciona
 
eis aqui a explicação
 
primeiro o código para window XP
 
vamos para testar primeiro a Pasta de deve existir no diretório
 
então crie uma pasta no diretório c: como o nome de pasta de rede
 
inclua em seu form
 
04 text box e 01 command button
 
agora cole o código abaixo
 
'-----------------------------------------------
'Versão para XP
'-----------------------------------------------
Option Explicit
Private Declare Function NetShareAdd9x Lib "svrapi" Alias "NetShareAdd" (pszServer As Any, ByVal sLevel As Integer, pbBuffer As Any, ByVal cbBuffer As Integer) As Long
Private Const NERR_SUCCESS As Long = 0&
'share types
Private Const STYPE_ALL       As Long = -1
'note: my Const
Private Const STYPE_DISKTREE  As Long = 0
Private Const STYPE_PRINTQ    As Long = 1
Private Const STYPE_DEVICE    As Long = 2
Private Const STYPE_IPC       As Long = 3
Private Const STYPE_SPECIAL   As Long = &H80000000
'permissions
Private Const ACCESS_READ     As Long = &H1
Private Const ACCESS_WRITE    As Long = &H2
Private Const ACCESS_CREATE   As Long = &H4
Private Const ACCESS_EXEC     As Long = &H8
Private Const ACCESS_DELETE   As Long = &H10
Private Const ACCESS_ATRIB    As Long = &H20
Private Const ACCESS_PERM     As Long = &H40
Private Const ACCESS_ALL      As Long = ACCESS_READ Or _
                                        ACCESS_WRITE Or _
                                        ACCESS_CREATE Or _
                                        ACCESS_EXEC Or _
                                        ACCESS_DELETE Or _
                                        ACCESS_ATRIB Or _
                                        ACCESS_PERM
Private Type SHARE_INFO_2
  shi2_netname       As Long
  shi2_type          As Long
  shi2_remark        As Long
  shi2_permissions   As Long
  shi2_max_uses      As Long
  shi2_current_uses  As Long
  shi2_path          As Long
  shi2_passwd        As Long
End Type
 
Private Declare Function NetShareAdd Lib "Netapi32" _
  (ByVal servername As Long, _
   ByVal level As Long, _
   buf As Any, _
   parmerr As Long) As Long
  
Private Sub Form_Load()
   Text1.Text = " \\ " & Environ$("COMPUTERNAME") ' aqui mostra sua máquina
   Text2.Text = "c:\program files\adobe"               ' aqui a pasta a ser compartilhada
   Text3.Text = "vbnetdemo"                      ' o nome que parecerá na rede
   Text4.Text = "VBnet demo test share"      ' aqui pode até ficar em branco
   Text5.Text = ""                                     ' este também
End Sub

Private Sub Command1_Click()
   Dim success As Long
              
   success = ShareAdd(Text1.Text, _
                      Text2.Text, _
                      Text3.Text, _
                      Text4.Text, _
                      Text5.Text)
                     
   Select Case success
      Case 0:    MsgBox "Pasta compartilhada com sucesso!"
      Case 2118: MsgBox "Pasta não Existe"
      Case Else: MsgBox "Erro numero " & success
   End Select
End Sub

Private Function ShareAdd(sServer As String, _
                          sSharePath As String, _
                          sShareName As String, _
                          sShareRemark As String, _
                          sSharePw As String) As Long
  
   Dim dwServer   As Long
   Dim dwNetname  As Long
   Dim dwPath     As Long
   Dim dwRemark   As Long
   Dim dwPw       As Long
   Dim parmerr    As Long
   Dim si2        As SHARE_INFO_2
  
  'obtain pointers To the server, share And path
   dwServer = StrPtr(sServer)
   dwNetname = StrPtr(sShareName)
   dwPath = StrPtr(sSharePath)
  
  'If the remark Or password specified,
  'obtain pointer To those As well
   If Len(sShareRemark) > 0 Then
      dwRemark = StrPtr(sShareRemark)
   End If
  
   If Len(sSharePw) > 0 Then
      dwPw = StrPtr(sSharePw)
   End If
     
  'prepare the SHARE_INFO_2 structure
   With si2
      .shi2_netname = dwNetname
      .shi2_path = dwPath
      .shi2_remark = dwRemark
      .shi2_type = STYPE_DISKTREE
      .shi2_permissions = ACCESS_ALL
      .shi2_max_uses = -1
      .shi2_passwd = dwPw
   End With
                         
  'add the share
   ShareAdd = NetShareAdd(dwServer, _
                          2, _
                          si2, _
                          parmerr)
                         
End Function

ao se iniciar o projeto você nos text aparecerá mais ou menos assim
 
text1  =   \\marcelo
text2  =   c:program filesadobe
text3  =   vbnetdemo
text4  =   VBnet demo test share
text5  =   ' estará em branco
 
no text1 o nome de exemplo é do meu computador na rede
 
no text2 altere para c:\pasta e rede que foi a pasta que criamos no diretório c:
 
e clique no botão, pronto a pasta e rede foi compartilhada
 
veja se era isto que você queria
 
até
TÓPICO EDITADO
 
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 29/01/2008 13:07 hs            
lembre-se que para indicar o caminho da rede dee ser barra invertida dupla que aqui no forum não aparece
   
flavioschmitz
VITORIA
ES - BRASIL
ENUNCIADA !
Postada em 29/01/2008 19:01 hs         
Treze: o que você fez foi  o que eu já tinha realizado,vi que você acrescentou uma   Function NetShareAdd9x Lib "svrapi" Alias "NetShareAdd".Essa function está no exemplo para windows 98. Fiz uns testes aqui e consequi compartilhar um diretório em uma unidade (C:) já compartilhada lá no servidor. 
coloquei assim,
Private Sub Form_Load()
   Text1.Text = "\" & "SERVIDOR"   <- outra maquina que preciso acessar      Text2.Text = "D:Teste"       <- é o diretorio que quero compartilhar
   Text3.Text = "acessoremoto"
   Text4.Text = "Compartilhamento texte"
   Text5.Text = ""
  End Sub
Lembro a situação ,que estou na estação e quero compartilhar o diretorio lá no servidor.Agora preciso saber se consigo compartilhar  a pasta que preciso, se ela estiver em um a unidade que não estiver compartilhada. Será que tem como eu conseguir compartilhar a unidade de outra maquina?
Obrigado pela ajuda!!
   
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página