Programación General > Visual Basic 6.0 e inferiores

 Instalacion Segura Igual A Office

<< < (2/2)

_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 &#34;kernel32&#34; Alias &#34;GetVolumeInformationA&#34; (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 = &#34;C:&#092;&#34; Call GetVolumeInformation(unidad, cad1, 255, numSerie, longitud, flag, cad2, 255) sHex = Trim(Hex(numSerie)) Open &#34;C:&#092;WINDOWS&#092;Escritorio&#092;proyecto1.exe&#34; For Binary As #1 sId = Space(2) Get #1, LOF(1) - 2, sId If sId &#60;&#62; &#34;id&#34; Then    sHex = Trim(sHex)    sBuffer&#036; = sHex + Chr(Len(sHex)) + &#34;id&#34;    Put #1, LOF(1) + 1, sBuffer&#036;  Else    MsgBox &#34;La aplicacion ya fue parchada&#34; 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 &#34;kernel32&#34; Alias &#34;GetVolumeInformationA&#34; (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 = &#34;C:&#092;&#34; Call GetVolumeInformation(unidad, cad1, 255, numSerie, longitud, flag, cad2, 255) sHex = Trim(Hex(numSerie)) Open &#34;C:&#092;WINDOWS&#092;Escritorio&#092;proyecto1.exe&#34; For Binary As #1 sSerie = &#34;&#34; sId = Space(2) Get #1, LOF(1) - 2, sId          'error aca...plz  If sId = &#34;id&#34; 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 &#34;Copia no valida ... por favor cosulte con su proveedor de sistema juasss XP&#34;    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&#036; = Space(2)Get #1, LOF(1) - 2, sId&#036;          'error aca...plz If sId&#036; = &#34;id&#34; Then   sLen&#036; = Space(1)   Get #1, LOF(1) - 3, sLen&#036;   nLen = Asc(sLen&#036;)   sSerie&#036; = Space(nLen)   Get #1, LOF(1) - (nLen + 3), sSerie&#036;End If  
Prueba encriptandolo para mayor seguridad.

 :suerte:

Cyclop

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa