Que no funcione sin cd

Trabajo en Visual Basic, necesito crear un programa que para que funcione, necesite tener su cd en la unidad, de tal forma que este no funcione si no tiene el disco en la unidad de cd-rom.

3 respuestas

Respuesta
1
Supongo que el programa no necesita estar instalado en la pc, ¿solo que funcione desde el CD?
Si es así se puede resolver de muchas formas, una seria que al ejecutar el programa en el form
load haya un codigo que busque un archivo en el cd, si esto no esta que haga un End. Cuando
Grabes el cd con tu programa agrega un archivo (ejemplo: readme.ini).
Primero tienes que saber cual es la unidad de cd rom de la pc:
Option Explicit
Private Declare Function GetDriveType Lib "kernel32" Alias
"GetDriveTypeA" (ByVal nDrive As String) As Long
Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias
"GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal
lpBuffer As String) As Long
Private Const DRIVE_REMOVABLE = 2
Private Const DRIVE_FIXED = 3
Private Const DRIVE_REMOTE = 4
Private Const DRIVE_CDROM = 5
Private Const DRIVE_RAMDISK = 6
Function StripNulls(startStrg$) As String
Dim c%, item$
c% = 1
Do
If Mid$(startStrg$, c%, 1) = Chr$(0) Then
item$ = Mid$(startStrg$, 1, c% - 1)
startStrg$ = Mid$(startStrg$, c% + 1, Len(startStrg$))
StripNulls$ = item$
Exit Function
End If
c% = c% + 1
Loop
End Function
Private Sub Form_Load()
Dim r&, allDrives$, JustOneDrive$, pos%, DriveType&
Dim CDfound As Integer
allDrives$ = Space$(64)
r& = GetLogicalDriveStrings(Len(allDrives$), allDrives$)
allDrives$ = Left$(allDrives$, r&)
Do
pos% = InStr(allDrives$, Chr$(0))
If pos% Then
JustOneDrive$ = Left$(allDrives$, pos%)
allDrives$ = Mid$(allDrives$, pos% + 1, Len(allDrives$))
DriveType& = GetDriveType(JustOneDrive$)
If DriveType& = DRIVE_CDROM Then
CDfound% = True
Exit Do
End If
End If
Loop Until allDrives$ = "" Or DriveType& = DRIVE_CDROM
If CDfound% Then
label1.Caption = "La unidad de CD-ROM corresponde a la
unidad: " & UCase$(JustOneDrive$)
Luego tratar de leer el archivo que grabaste en el cd:
Private Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString _
As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Dim cad1 As String * 256
Dim cad2 As String * 256
Dim longitud As Long
Dim flag As Long
Dim I As Integer
Dim Est As String
Est = String$(50, " ")
I = GetPrivateProfileString("Archivo", "Serie", "", Est, Len(Est), unidad & "Ejemplo.ini")
If I = 0 Then
End
End If
Tendrias que crear un archivoi de tipo ini y grabarlo en el cd, con un texto algo asi:
[Archivo]
Serie
Respuesta
1
Puedes usar el objeto filesystemobjects, en la siguiente liga localizas algunas aplicaciones de ejemplo:
Respuesta
Puedes buscar ejemplo de eso en www.jrubi.com y en www.vbcode.com
¿Me puedes colaborar con el código que hace esto?
Gracias.
Busca un archivo en la unidad de CD cuando vayas a iniciar tu programa, de esa manera siempre tienen que tener el CD en la UNidad.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas