Ver Mensaje Individual
  #83 (permalink)  
Antiguo 24/12/2005, 23:22
Avatar de Frehley
Frehley
 
Fecha de Ingreso: junio-2005
Ubicación: Somewhere between Heaven and Hell
Mensajes: 415
Antigüedad: 19 años, 8 meses
Puntos: 0
Bueno, les muestro lo que hice yo:

Esto va cuando ejecuta el programa:
Cita:
Private Declare Function GetVolumeInformation& Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal pVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long)
Dim cad1 As String * 256
Dim cad2 As String * 256
Dim numSerie As Long
Dim longitud As Long
Dim flag As Long

Private Sub Command1_Click()
If (Val(Reg1.Text) = (numSerie + 1500)) And (Val(Reg2.Text) = (numSerie + 1600)) And (Val(Reg3.Text) = (numSerie + 1900)) Then
MsgBox "El programa ha sido registrado", vbInformation, ""
SaveSetting App.Title, Me.Name, Me.Reg1.Name, Me.Reg1.Text
SaveSetting App.Title, Me.Name, Me.Reg2.Name, Me.Reg2.Text
SaveSetting App.Title, Me.Name, Me.Reg3.Name, Me.Reg3.Text
Form1.Show
Unload Me
Else
MsgBox "El numero introducido es incorrecto", vbCritical, ""
End If
End Sub

Private Sub Form_Initialize()
If (Val(Reg1.Text) = (numSerie + 1500)) And (Val(Reg2.Text) = (numSerie + 1600)) And (Val(Reg3.Text) = (numSerie + 1900)) Then
Form1.Show
Unload Me
End If
End Sub

Private Sub Form_Load()

unidad = "C:\"
Call GetVolumeInformation(unidad, cad1, 256, numSerie, longitud, flag, cad2, 256)
Text1.Text = numSerie
Reg1.Text = GetSetting(App.Title, Me.Name, Reg1.Name, vbChecked)
Reg2.Text = GetSetting(App.Title, Me.Name, Reg2.Name, vbChecked)
Reg3.Text = GetSetting(App.Title, Me.Name, Reg3.Name, vbChecked)
Text1.Text = numSerie

End Sub
Private Sub Form_Unload(Cancel As Integer)
SaveSetting App.Title, Me.Name, Me.Reg1.Name, Me.Reg1.Text
SaveSetting App.Title, Me.Name, Me.Reg2.Name, Me.Reg2.Text
SaveSetting App.Title, Me.Name, Me.Reg3.Name, Me.Reg3.Text
End Sub
Y este es el generador de serials:

Cita:
Private Declare Function GetVolumeInformation& Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal pVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long)
Dim cad1 As String * 256
Dim cad2 As String * 256
Dim numSerie As Long
Dim longitud As Long
Dim flag As Long
Private Sub cmdGenerar_Click()

unidad = "C:\"

Call GetVolumeInformation(unidad, cad1, 256, numSerie, longitud, flag, cad2, 256)
numSerie = primera.Text
registro1.Text = (numSerie + 1500)
registro2.Text = (numSerie + 1600)
registro3.Text = (numSerie + 1900)
End Sub

Private Sub cmdSalir_Click()
If MsgBox("¿Está usted seguro que desea Salir de SerialZax?", _
vbQuestion + vbYesNo, "Pregunta") = vbYes Then
End
End If
End Sub

Private Sub Form_Load()

unidad = "C:\"
Call GetVolumeInformation(unidad, cad1, 256, numSerie, longitud, flag, cad2, 256)

primera.Text = numSerie
End Sub
Qué les parece? Hasta ahora me funciona perfecto. Seguramente hay errores o variables de más, pero lo hice apurado.

Salu2!
__________________
diegoz.com.ar

Última edición por Frehley; 25/12/2005 a las 01:42