Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Fabricio

#71
yo cree una funcion similar leo los archivos que cree luego los cierro pero dejo funcionado mi programa el problema surge cuando quiero extraer el pen haciendo click en extraer harware con seguridad o con una funcion similar a la de cobien
me dice que no se puede extraer por que otra aplicacion (en este caso mi programa ) esta usando el pen

espero haber sido claro
gracias un saludo
#72
ya que hay muchos viendo alguien sabe como puedo leer y escribir datos en un pendrive 
#73
el uso del objeto fso consume mas recursos ?????
saludos
#74
Prueben este codigo a ver que les parece


Private Sub Command1_Click()

Dim fs As Object
Dim carpeta As Object
Dim archivo As Object
Dim cantidad As Integer

Set fs = CreateObject("Scripting.FileSystemObject")
Set carpeta = fs.GetFolder("C:\Info\Log")
Set archivo = carpeta.Files
cantidad = archivo.Count
If cantidad > 0 Then
    MsgBox cantidad
End If

End Sub
#75
Muchas gracias a xkiz  y a YST
:-\
#76
Hola YST  muchas gracias por responder tan rapido  :D
probe tu codigo... yo necesito saber si la carpeta ubicada en C:\Informacion\CarpetaDatos posee archivos o carpetas dentro
como le paso la ruta segun tu cadigo  :huh:

gracias
saludos
#77
Hola a todos hay algun codigo de VB 6 que me permita saber si una carpeta esta vacia  :huh: yo comosco la ruta de la carpeta a exsaminar y deseo saber si tiene archivos u otras carpetas de contenido

saludos
muchas gracias  :-\
#78
Programación Visual Basic / esn
26 Marzo 2009, 13:18 PM
Hola "Dessa" por lo que me decis me parece que el problema esta en mi PC vos probaste anotar los datos de cada pen por separado y luego poner los dos a la ves y correr el programa???????
Depure el codigo paso a paso y en la rutina obtener ESN mi pc el primer pen que detecta en

With GetObject("WinMgmts:")
        For Each Disco In .InstancesOf("Win32_DiskDrive")


es el pen al que windows le asigna la letra G (en tu pc puede ser otra obvio)
mientras mi pc detecte primero este pen el codigo nunca va a funcionar por que la primer letra que se genera y se guarda en la matriz es la F (esta letra es la que se le asigna al otro pen)
tambien te cuento que lo probe en otra pc y el resultado fue el mismo
espero aber sido claro
un gran saludo
#79
Programación Visual Basic / Re: Help!!!
23 Marzo 2009, 21:35 PM
Hola a todos tengo un problema  el problema es el siguiente tengo que obtener el ESN (numero de serie electronico dado por el fabricante) de todos los  pen drive conectados el codigo que deje funciona solo si se conecta un solo pen.... si se conectan dos te da los datos cambiados(o sea la letra del pen 1 no corresponde con su esn sino con el esn del otro pen) ej F: esn 23
                             G: esn 65
pero el 23 es el esn de G y el 65 el de F

me podes ayudar ya que no se como corregir este error
o sabes de otra forma de obtener estos datos

#80
Programación Visual Basic / Re: Help!!!
11 Marzo 2009, 18:10 PM
LEER ESTE GRACIAS

este esta un poco mas prolijo

en el formulario


Option Explicit

Dim detectado As Boolean
Dim matriz_Volume(1 To 26, 1 To 3) As String
Dim matriz_ESN(1 To 26) As String
Dim numero_Volume As Long
Dim nombre_Volume As String

Private Sub cmdExtraer_Click()

If lblUnidad.Caption <> "" Then

    EjectDevice (lblUnidad.Caption)
    lblUnidad.Caption = ""
    lblESN.Caption = ""
    lblNombVol.Caption = ""
    lblNumVol.Caption = ""
   
Else
    MsgBox "No hay dispositivos USB instalados"
   
End If


End Sub


Private Sub cmdDetectar_Click()
   
    Call Dame_Letra_USB
   
    If detectado = True Then
        Call Numero_de_Serie
        Call Mostrar
       
    Else
         Matriz_volume_en_cero
         Matriz_esn_en_cero
    End If
   

End Sub


Public Sub Numero_de_Serie()

    Dim Disco As Object
    Dim cadena As String
    Dim largo As Integer
    Dim contador As Integer
    Dim i As Integer
    Dim posicion As Integer
    Dim resultado As String
    Dim largo_Res As Integer
    Dim contador2 As Integer
    Dim j As Integer
    Dim posicion2 As Integer
    Dim ESN As String
    Dim k As Integer
   
    k = 1
   
    'Matriz_esn_en_cero
       
    With GetObject("WinMgmts:")

        For Each Disco In .InstancesOf("Win32_DiskDrive") ' ej 3 objetos 2 usb + ide
   
            If Disco.InterfaceType = "USB" Then ' detecto si son usb

                cadena = Disco.PNPDeviceID 'tiene embebido el ESN
                largo = Len(cadena)
                contador = 0
   
                For i = largo To 1 Step -1
       
                    posicion = InStr(i, cadena, "\")
                    contador = contador + 1
           
                    If posicion > 0 Then
                        resultado = Right(cadena, contador - 1)
                        Exit For
                    End If
                Next
   
                largo_Res = Len(resultado)
                contador2 = 0
       
                For j = largo_Res To 1 Step -1
                    posicion2 = InStr(j, resultado, "&")
                    contador2 = contador2 + 1
                   
                    If posicion2 > 0 Then
                        ESN = Left(resultado, largo_Res - contador2)
                        matriz_ESN(k) = ESN
                        k = k + 1
                        Exit For
                    End If
                Next
       
            End If ' cierra el primer if el q detecta usb

        Next ' cierra el for q recorre los objetos

    End With
       
End Sub


Public Sub Dame_Letra_USB()

    Dim NumDisco As Integer
    Dim StrDisco As String
    Dim ret As Long
    Dim letra_Unidad As String
    Dim bandera As Boolean
    Dim i As Integer
           
    bandera = False
    i = 1
   
    For NumDisco = 0 To 25
       
        StrDisco = Chr(NumDisco + 65) & ":\"   'convierte  a char c/numero del bucle esta es la letra a verificar
        If NumDisco = 0 Then
            ret = GetDriveType(StrDisco)
        ElseIf NumDisco > 0 And GetDriveType(StrDisco) = 2 Then ' si pasa x este if se detecto un USB
            ret = 7
           
            letra_Unidad = StrDisco
            GetVolumeNumber (StrDisco)
            matriz_Volume(i, 1) = letra_Unidad
            matriz_Volume(i, 2) = nombre_Volume
            matriz_Volume(i, 3) = Hex(numero_Volume)
            i = i + 1
            bandera = True
            detectado = True
           
        ElseIf NumDisco > 0 And GetDriveType(StrDisco) <> 2 Then
            ret = GetDriveType(StrDisco)
        End If
    Next
   
    If bandera = False Then
       
        MsgBox "No hay dispositivos USB instalados"
        detectado = False
    End If


End Sub


Sub GetVolumeNumber(strDrive As String)

Dim SerialNum As Long
Dim res As Long
Dim Temp1 As String
Dim Temp2 As String


Temp1 = String$(255, Chr$(0))
Temp2 = String$(255, Chr$(0))

res = GetVolumeInformation(strDrive, Temp1, _
Len(Temp1), SerialNum, 0, 0, Temp2, Len(Temp2))

nombre_Volume = Temp1
numero_Volume = SerialNum

End Sub


Public Sub Mostrar()

Dim i As Integer

For i = 1 To 26
    If matriz_ESN(i) <> "" Then
        lst1.AddItem matriz_Volume(i, 1) & " " & matriz_ESN(i) & " " & matriz_Volume(i, 3)
    End If
Next

End Sub

Sub Matriz_volume_en_cero()

Dim i As Integer

For i = 1 To 26

    matriz_Volume(i, 1) = ""
    matriz_Volume(i, 2) = ""
    matriz_Volume(i, 3) = ""
Next
End Sub

Sub Matriz_esn_en_cero()

Dim i As Integer

For i = 1 To 26

    matriz_ESN(i) = ""
   
Next
End Sub




en el modulo


Option Explicit

Declare Function GetVolumeInformation Lib "kernel32.dll" Alias _
"GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal _
lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Integer, _
lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, _
lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal _
nFileSystemNameSize As Long) As Long

Public Declare Function GetLogicalDrives Lib "kernel32" () As Long
Public Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long