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

 

  Dicas

  Visual Basic    (Arquivos/Diretórios)

Título da Dica:  Múltiplas informação de unidades!
Postada em 27/11/2003 por [_Chuck_]            
Essa class obtém informação de capacidade, FAT, rótulo, tipo de unidade e etc.. Coloque esse código em uma class para sua melhor utilização!

Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Private Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" (ByVal lpRootPathName As String, lpFreeBytesAvailableToCaller As Currency, lpTotalNumberOfBytes As Currency, lpTotalNumberOfFreeBytes As Currency) As Long

Public Enum PD_Medida
  [Bytes]
  [KBytes]
  [MBytes]
  [GBytes]
End Enum
Public Enum TP_DRV
  [DiscoRemovivel]
  [DicoFixo]
  [DiscoRemoto]
  [CDRom]
  [RAMDisco]
End Enum
Public Enum TP_LISTA
  [ListaTodos]
  [ListaDiscoRemovivel]
  [ListaDicoFixo]
  [ListaDiscoRemoto]
  [ListaCDRom]
  [ListaRAMDisco]
End Enum
Public Function TipoUnidade(Unidade As String, TPDisco As TP_DRV) As Boolean
Dim GTDVTP As Long
  GTDVTP = GetDriveType(Unidade)
  If GTDVTP = 2 And TPDisco = DiscoRemovivel Then
    TipoUnidade = True
  ElseIf GTDVTP = 3 And TPDisco = DicoFixo Then
    TipoUnidade = True
  ElseIf GTDVTP = 4 And TPDisco = DiscoRemoto Then
    TipoUnidade = True
  ElseIf GTDVTP = 5 And TPDisco = CDRom Then
    TipoUnidade = True
  ElseIf GTDVTP = 6 And TPDisco = RAMDisco Then
    TipoUnidade = True
  Else
    TipoUnidade = False
  End If
End Function
Public Sub InformacaoUnidade(Unidade As String, Rotulo As String, FAT As String, NumeroSerial As String)
Dim USerial As Long, UNome As String, UFAT As String
  UNome = String$(255, Chr$(0))
  UFAT = String$(255, Chr$(0))
  GetVolumeInformation Unidade, UNome, 255, USerial, 0, 0, UFAT, 255
  Rotulo = Left$(UNome, InStr(1, UNome, Chr$(0)) - 1)
  NumeroSerial = USerial
  FAT = Left$(UFAT, InStr(1, UFAT, Chr$(0)) - 1)
End Sub
Public Sub ContadorUnidade(TipoLista As TP_LISTA, Lista As ListBox)
Dim Valor As String
  Valor = String(255, Chr$(0))
  GetLogicalDriveStrings 255, Valor
  For X = 1 To 200
    If Left$(Valor, InStr(1, Valor, Chr$(0))) = Chr$(0) Then Exit For
      If TipoLista = 0 Then
        Lista.AddItem Left$(Valor, InStr(1, Valor, Chr$(0)) - 1)
      Else
        If GetDriveType(Left$(Valor, InStr(1, Valor, Chr$(0)) - 1)) = TipoLista + 1 Then
          Lista.AddItem Left$(Valor, InStr(1, Valor, Chr$(0)) - 1)
        End If
      End If
      Valor = Right$(Valor, Len(Valor) - InStr(1, Valor, Chr$(0)))
    Next X
End Sub
Public Sub InformacaoEspacoDisco(Unidade As String, PadraoMedida As PD_Medida, TotalEspaco As String, TotalEspacoLivre As String, TotalEspacoUsado As String)
Dim TBL As Currency, TB As Currency
   GetDiskFreeSpaceEx Unidade, 0, TB, TBL
   Select Case PadraoMedida
     Case 0
       TotalEspaco = Format$(TB * 10000, "###,###,###,##0")
       TotalEspacoLivre = Format$(TBL * 10000, "###,###,###,##0")
       TotalEspacoUsado = Format$((TB - TBL) * 10000, "###,###,###,##0")
     Case 1
       TotalEspaco = Format$((TB * 10000) / 1024, "##.000")
       TotalEspacoLivre = Format$((TBL * 10000) / 1024, "##.000")
       TotalEspacoUsado = Format$(((TB - TBL) * 10000) / 1024, "##.000")
     Case 2
       TotalEspaco = Format$((TB * 10000) / 1024 / 1024, "##.000")
       TotalEspacoLivre = Format$((TBL * 10000) / 1024 / 1024, "##.000")
       TotalEspacoUsado = Format$(((TB - TBL) * 10000) / 1024 / 1024, "##.000")
     Case 3
       TotalEspaco = Format$((TB * 10000) / 1024 / 1024 / 1024, "##.000")
       TotalEspacoLivre = Format$((TBL * 10000) / 1024 / 1024 / 1024, "##.000")
       TotalEspacoUsado = Format$(((TB - TBL) * 10000) / 1024 / 1024 / 1024, "##.000")
   End Select
End Sub

 


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