
09/07/2008, 07:01
|
| | Fecha de Ingreso: junio-2008
Mensajes: 12
Antigüedad: 16 años, 10 meses Puntos: 1 | |
Respuesta: Acceso a sectores desde VB Weno, lo arreglé solito sin poner copymemory ni nada.
Ya no hace falta que me respondáis.
Chao.
Estructura básica en VisualBasic para leer un sector pasado en variable sector:
Private Declare Function CreateFile Lib "kernel32" _
Alias "CreateFileA" _
(ByVal lpFileName As String, _
ByVal dwDesiredAccess As Long, _
ByVal dwShareMode As Long, _
ByVal lpSecurityAttributes As Any, _
ByVal dwCreationDisposition As Long, _
ByVal dwFlagsAndAttributes As Long, _
ByVal hTemplateFile As Long) As Long
Private Declare Function SetFilePointer Lib "kernel32" _
(ByVal hFile As Long, _
ByVal lDistanceToMove As Long, _
lpDistanceToMoveHigh As Long, _
ByVal dwMoveMethod As Long) As Long
Private Declare Function ReadFile Lib "kernel32" _
(ByVal hFile As Long, _
lpBuffer As Any, _
ByVal nNumberOfBytesToRead As Long, _
lpNumberOfBytesRead As Long, _
lpOverlapped As Long) As Long
Dim q As Long 'temporal
Dim q2 As Double 'temporal
Dim hdevice As Long 'identificador de la unidad abierta
Dim espa As String * 512 'cadena lectura o grabación
Dim ret As Long 'bytes leidos o grabados
Dim sector As double 'sector desplazamiento desde inicio unidad
Dim byt As Long 'bytes de desplazamiento desde inicio unidad
Dim byt2 As Long 'bytes de desplazamiento2 desde inicio unidad
Private Sub Form_Activate()
hdevice = CreateFile("\\.\D:, &HC0000000, 3, 0&, 3, 0&, 0&)
sector=0 'Sector a leer
q2 = sector * 512#
byt2 = Fix(q2 / 4294967296#)
byt = q2 - byt2 * 4294967296#
q = SetFilePointer(hdevice, byt, byt2, 0&)
If q <> byt Then goto error
ReadFile hdevice, ByVal espa, 512, ret, ByVal 0&
If ret <> 512 Then GoTo error
'Salida del sector en variable de cadena: espa
End sub
Última edición por wyxchari; 18/07/2008 a las 05:39 |