Como usar o Visual Basic para lista Active unidades lógicas

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 291573
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sumário
Você pode determinar quais letras estão em uso em um computador local usando a API do Win32 GetLogicalDriveStrings . Esta lista de letras de unidade será as letras de todas as unidades ativas no computador local, incluindo unidades de disquetes, discos rígidos, unidades mapeadas e outras unidades que são mapeadas para uma letra de unidade.
Mais Informações
A função GetLogicalDriveStrings API retornará uma seqüência de caracteres contendo uma lista de todas as letras de unidade ativa no computador local. O formato da seqüência de caracteres é uma lista de letras de unidade com uma terminação nula no final da seqüência de caracteres separadas por nulo. Por exemplo, um computador com uma única unidade de disquete (A:) e um único disco rígido (C:) teria uma seqüência de formato a seguir retornado pelo GetLogicalDriveStrings :
A:\<null>C:\<null><null>					
Essa seqüência de caracteres pode ser analisada para listar as unidades ativas.

O exemplo de código Visual Basic a seguir demonstra como recuperar e analisar uma lista de unidades. Observe que isso também pode ser usado para criar um controle ou recurso semelhante ao DriveListBox .

Exemplo passo a passo

  1. Inicie um novo projeto Visual Basic Standard EXE. O Form1 é criado por padrão.
  2. Adicione um novo botão de comando (Command1) e uma caixa de listagem (Lista1) ao Form1.
  3. Adicione o seguinte código à janela de código do Form1:
    Option ExplicitPrivate Declare Function GetLogicalDriveStrings Lib "kernel32" _    Alias "GetLogicalDriveStringsA" _    (ByVal nBufferLength As Long, ByVal lpBuffer As String) As LongPrivate Function GetDriveStrings() As String    ' Wrapper for calling the GetLogicalDriveStrings API        Dim result As Long          ' Result of our api calls    Dim strDrives As String     ' String to pass to api call    Dim lenStrDrives As Long    ' Length of the above string        ' Call GetLogicalDriveStrings with a buffer size of zero to    ' find out how large our stringbuffer needs to be    result = GetLogicalDriveStrings(0, strDrives)        strDrives = String(result, 0)    lenStrDrives = result        ' Call again with our new buffer    result = GetLogicalDriveStrings(lenStrDrives, strDrives)        If result = 0 Then        ' There was some error calling the API        ' Pass back an empty string        ' NOTE - TODO: Implement proper error handling here        GetDriveStrings = ""    Else        GetDriveStrings = strDrives    End IfEnd FunctionPrivate Sub Command1_Click()    Dim strDrives As String        ' Find out what drives we have on this machine    strDrives = GetDriveStrings()        If strDrives = "" Then        ' No drives were found        MsgBox "No Drives were found!", vbCritical    Else        ' Walk through the string and list each drive        DisplayDriveTypes strDrives    End IfEnd SubPrivate Sub DisplayDriveTypes(drives As String)    ' Walk through the logical drive string and display the drive    ' letters. The logical drive string is a null seperated    ' double null terminated string.        Dim pos As Long    Dim drive As String        List1.Clear    pos = 1        Do While Not Mid$(drives, pos, 1) = Chr(0)        drive = Mid$(drives, pos, 3)        pos = pos + 4        List1.AddItem UCase(drive)    LoopEnd Sub
  4. Clique em Executar ou pressione a tecla F5 para executar o projeto.
resultado: A letra de unidade de cada unidade lógica no sistema é exibida na caixa de listagem.
Referências
Para obter informações adicionais, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
190000Como obter programação a usar a API do Windows
291575Como usar o Visual Basic para localizar unidades de CD-ROM
196141PROBLEMA: Problemas ao usar intrínsecos File System Controls
Guia do programador do Visual Basic (disponível no MSDN online, http://msdn.microsoft.com)
Unidades de VB GetLogicalDriveStrings enumerar letra

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 291573 - Última Revisão: 12/06/2015 01:14:54 - Revisão: 2.0

Microsoft Visual Basic 5.0 Professional Edition, Microsoft Visual Basic 6.0 Professional Edition, Microsoft Visual Basic 5.0 Enterprise Edition, Microsoft Visual Basic Enterprise Edition for Windows 6.0

  • kbnosurvey kbarchive kbmt kbapi kbhowto kbsample KB291573 KbMtpt
Comentários
ERROR: at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)