Guest Danilo Postado Julho 17, 2004 Denunciar Share Postado Julho 17, 2004 Estou fazendo um autorun em vb, e queria uma opção explorar CD, onde quando eu clicar o EXPLORER vai ser aberto na letra da unidade de CD.Por equanto estou usando esse comando.Shell ("c:\windows\explorer.exe e:"), vbNormalFocuso problema é o E:e se algum dia a minha unidade de CD for D:, ai o programa vai ter erro...Tem alguma rotina pro VB detectar automático qual é minha unidade de cd?!?!?!Valeu! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Julho 17, 2004 Denunciar Share Postado Julho 17, 2004 Existe a API GetDriveType() à qual você fornece uma letra de unidade e ela te retorna o tipo. Se o valor retornado for 5 é porque se trata de uma unidade de CD-ROM. Dá uma olhada no exemplo do API-Guide (www.mentalis.org).Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Danilo Postado Julho 18, 2004 Denunciar Share Postado Julho 18, 2004 cara num entendi muito bem... eu tenho que baixar um programa ou basta escrever esse código?!?!?Tem como você me explicar um pouquinho melhor?!?!?desde já VALEU! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Julho 18, 2004 Denunciar Share Postado Julho 18, 2004 GetDriveType() é uma função interna do Windows, que não está disponível no VB sozinho. Para utilizá-la, você deve declará-la. O programa que sugeri (API-Guide) tem a declaração e um exemplo de utilização da mesma.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Julho 19, 2004 Denunciar Share Postado Julho 19, 2004 to quase conseguindo... puts é meio complikado.. mais valeu pela dica ta ajudando pacas Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Decio Postado Julho 19, 2004 Denunciar Share Postado Julho 19, 2004 Tente o código abaixo para retornar a letra do drive de CD:Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As LongPrivate Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As LongPrivate Const DRIVE_REMOVABLE = 2Private Const DRIVE_FIXED = 3Private Const DRIVE_REMOTE = 4Private Const DRIVE_CDROM = 5Private Const DRIVE_RAMDISK = 6 Private Sub Form_Load() Dim r&, allDrives$, JustOneDrive$, pos%, DriveType&Dim CDfound As IntegerDim Search As Boolean 'pad the string with spaces allDrives$ = Space$(64) 'call the API to get the string containing all drives r& = GetLogicalDriveStrings(Len(allDrives$), allDrives$) 'trim off trailing chr$(0)'s. AllDrives$ 'now contains all the drive letters. allDrives$ = Left$(allDrives$, r&) 'begin a loop Do 'find the first separating chr$(0) pos% = InStr(allDrives$, Chr$(0)) 'if there's one, then... If pos% Then 'extract the drive up to the chr$(0) JustOneDrive$ = Left$(allDrives$, pos%) 'and remove that from the Alldrives string, 'so it won't be checked again allDrives$ = Mid$(allDrives$, pos% + 1, Len(allDrives$)) 'with the one drive, call the API to 'determine the drive type DriveType& = GetDriveType(JustOneDrive$) 'check if it's what we want If DriveType& = DRIVE_CDROM Then 'got it (or at least the first one, 'anyway, if more than one), so set 'the found flag... CDfound% = True 'we're done, so get out Exit Do End If End If Loop Until allDrives$ = "" Or DriveType& = DRIVE_CDROM 'display the appropriate message If CDfound% Then CD_ROM = Left$(UCase$(JustOneDrive$), 3) MsgBox "Unidade de CD é " & CD_ROM Else MsgBox "Não foi detectado um drive de CD-ROM em seu sistema.", vbCritical End End If Exit SubEnd Sub Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 William Rodrigues Postado Julho 19, 2004 Denunciar Share Postado Julho 19, 2004 to quase conseguindo... puts é meio complikado.. mais valeu pela dica ta ajudando pacas È isso æ brother...O Decio colocou o código aí para todos...dê uma olhadinha e tente se basear no código dele Abraços,William Rodrigues Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Danilo Postado Julho 20, 2004 Denunciar Share Postado Julho 20, 2004 mais tipo qual a rotina do botão e qual a rotina do load?!?!?! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Julho 20, 2004 Denunciar Share Postado Julho 20, 2004 ah eutestei e ele me informou qual o drive porem o que eu quero é que ele abra o windows explorer para o cara explorar o cd, no caso, tipo se a unidade de cd do cara for a D:, o windows explorer vai abrir no d:, da pra fazer isso? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Danilo Postado Julho 20, 2004 Denunciar Share Postado Julho 20, 2004 desculpa eu encher de novo mais eu estou usando a seguinte rotinaIf CDfound% ThenCD_ROM = Left$(UCase$(JustOneDrive$), 3)MsgBox "Unidade de CD é " & CD_ROMShell ("c:\windows\explorer.exe")ElseMsgBox "Não foi detectado um drive de CD-ROM em seu sistema.", vbCriticalEndEnd Ifo que eu ponho depois do explorer.exe para que ele abra o explorer, explorando a unidade de cd do usuário?!?!?!? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Decio Postado Julho 20, 2004 Denunciar Share Postado Julho 20, 2004 Eu não testei o código, mas acho que assim deve funcionar:Call Shell("explorer.exe " & CD_ROM)Não é preciso dar o caminho fisico do Explorer.exe . Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Danilo Postado Julho 20, 2004 Denunciar Share Postado Julho 20, 2004 CARA VALEU!!!! FUNCIONOU BELEZA, AGORA INDEPENDENTE DE QUAL SEJA A LETRA DA UNIDADE DE CD DO USUÁRIO, QUANDO ELE CLICAR EM EXPLORAR CD, O WINDOWS EXPLORER VAI ABRIR EXPLORANDO A LETRA CORRESPONDENTE A DA SUA UNIDADE DE CD!FANTÁSTICO!!! VALEU MESMO!!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 William Rodrigues Postado Julho 21, 2004 Denunciar Share Postado Julho 21, 2004 CARA VALEU!!!! FUNCIONOU BELEZA, AGORA INDEPENDENTE DE QUAL SEJA A LETRA DA UNIDADE DE CD DO USUÁRIO, QUANDO ELE CLICAR EM EXPLORAR CD, O WINDOWS EXPLORER VAI ABRIR EXPLORANDO A LETRA CORRESPONDENTE A DA SUA UNIDADE DE CD!FANTÁSTICO!!! VALEU MESMO!!!! Beleza...Se cadastra e ajude a nossa comunidade a crescer ainda mais. Se cadastrando isso lhe traz muitos benefícios. Por exemplo fica muito mais fácil se comunicar com os membros, através da PM. Com ele você manda uma mensagem (como se fosse um EMail) e assim que a pessoa se logar ele vê a sua mensagem e assim poderá te ajudar mais rápido, as vezes, sem ao menos ter lido seu post Abraços,William Rodrigues Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mentz Postado Março 11, 2017 Denunciar Share Postado Março 11, 2017 Boa noite pessoal! Estou exatamente com essa necessidade listada acima, de descobrir qual a letra da unidade de CDROM para executar um bat. Vi que o Decio postou a solução logo acima, mas não conheço vbscript então gostaria que me ajudassem. Não sei como faço para editar e executar o código acima. Tentei colar o mesmo em um arquivo com a extensão vbs mas quando executo retorna erro. Como devo proceder? Alguém poderia me ajudar? Grato, Eugênio. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Danilo
Estou fazendo um autorun em vb, e queria uma opção explorar CD, onde quando eu clicar o EXPLORER vai ser aberto na letra da unidade de CD.
Por equanto estou usando esse comando.
Shell ("c:\windows\explorer.exe e:"), vbNormalFocus
o problema é o E:
e se algum dia a minha unidade de CD for D:, ai o programa vai ter erro...
Tem alguma rotina pro VB detectar automático qual é minha unidade de cd?!?!?!
Valeu!
Link para o comentário
Compartilhar em outros sites
13 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.