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 de giampietro
1
1
giampietro, Analista de Sistemas con muchos años de experiencia en Visual Basic 6
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
- Anónimoahora mismo
Respuesta de denciso
1
1
denciso, Soy una persona multifacética, tanto manejo la informática,...
Puedes usar el objeto filesystemobjects, en la siguiente liga localizas algunas aplicaciones de ejemplo: