Programación General > Visual Basic 6.0 e inferiores
Instalacion Segura Igual A Office
_EL_DJ_LU:
Hola amigo... la idea me parece.. chevere... muy buena..
Pero no me funciona.. nose que es lo que pasa.... al parecer parcha normal al programa pero cuando quiero ejecutar el programa hay error en la lectura..
Aca les dejo el codigo tenia que hacerle unas modificaciones
--- Código: Text ---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)Private Sub cmdParche_Click() Dim cad1 As String * 255 Dim cad2 As String * 255 Dim numSerie As Long Dim longitud As Long Dim flag As Long unidad = "C:\" Call GetVolumeInformation(unidad, cad1, 255, numSerie, longitud, flag, cad2, 255) sHex = Trim(Hex(numSerie)) Open "C:\WINDOWS\Escritorio\proyecto1.exe" For Binary As #1 sId = Space(2) Get #1, LOF(1) - 2, sId If sId <> "id" Then sHex = Trim(sHex) sBuffer$ = sHex + Chr(Len(sHex)) + "id" Put #1, LOF(1) + 1, sBuffer$ Else MsgBox "La aplicacion ya fue parchada" End If Close #1End Sub
esa fue del parche ahi no hay problema al momento de marchar.. bueno el problema es cuando quiere volver a leer la ultima parte del programa
--- Código: Text ---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)Private Sub Form_Load() Dim cad1 As String * 255 Dim cad2 As String * 255 Dim numSerie As Long Dim longitud As Long Dim flag As Long unidad = "C:\" Call GetVolumeInformation(unidad, cad1, 255, numSerie, longitud, flag, cad2, 255) sHex = Trim(Hex(numSerie)) Open "C:\WINDOWS\Escritorio\proyecto1.exe" For Binary As #1 sSerie = "" sId = Space(2) Get #1, LOF(1) - 2, sId 'error aca...plz If sId = "id" Then sLen = Space(1) Get #1, LOF(1) - 3, sLen nLen = Asc(sLen) sSerie = Space(nLen) Get #1, LOF(1) - (nLen + 3), sSerie End If Close #1 If sSerie = sHex Then ' Es correcto la copia Else MsgBox "Copia no valida ... por favor cosulte con su proveedor de sistema juasss XP" End End IfEnd Sub
EL ERROR OCURRE EN ESTA LINEA
Get #1, LOF(1) - 2, sId
Me sale este error...
error '458' el tiempo de ejecucion:
La variable usa un tipo de automatizacion no admitido en visual basic
Espero me puedan ayudar por que esa me parece una muy buena idea para proteger mi programa..
Muchas gracias por tu ayuda gentita..
Cyclop:
Prueba con esto al principio de la rutina:
--- Código: Text ---Dim sId As StringDim sLen As StringDim sSerie As StringDim nLen As Byte
o
--- Código: Text ---sId$ = Space(2)Get #1, LOF(1) - 2, sId$ 'error aca...plz If sId$ = "id" Then sLen$ = Space(1) Get #1, LOF(1) - 3, sLen$ nLen = Asc(sLen$) sSerie$ = Space(nLen) Get #1, LOF(1) - (nLen + 3), sSerie$End If
Prueba encriptandolo para mayor seguridad.
:suerte:
Cyclop
Navegación
[*] Página Anterior
Ir a la versión completa