Visual Basic - Proteger

Life is soft - evento anual de software empresarial
 
Vista:

Proteger

Publicado por J.Fernando (47 intervenciones) el 28/02/2003 20:19:31
Saludos a todos

Es posible crear un .exe que no se deje copiar?

Gracias por la ayuda que puedan brindarme
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Proteger

Publicado por José (129 intervenciones) el 01/03/2003 02:25:54
Bueno, copiar directamente el .exe puede ser que no funcione bien en otro pc si no cuenta con los archivos que necesita, así que eso también podría indicarse al instalador.

Copiar no creo J.Fernando, pero si evitar que dicho .exe no se cargue a memoria en otro pc que no sea el establecido.

Eso se puede al tomar en código el serial del disco duro del pc, con sentencias if then el programa compara el serial que tiene en código, si son distintos, se sale, si es igual, se queda en memoria. Ya que es el ejecutable, supongo que no tendrán forma de mirar en el código, el número del disco duro bajo el cual se rije el inicio del programa. Para distribución, se podría almacenar en una variable la información y enviarla a una BD, pero esa opción también saldría para quien lo desee copiar, así que de seguro tampoco es eso ¡verdad!.

Si es para uso exclusivo tuyo, entonces esto te podría servir:

Voy a ponerlo en otra nota porque el foro es muy limitado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: El código del Modulo

Publicado por José (129 intervenciones) el 01/03/2003 02:31:21
COPIA Y PEGA ESTO EN UN MODULO:

Option Explicit

Private Declare Function GetVolumeSerialNumber Lib "kernel32.dll" Alias _
"GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal _
lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, _
lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, _
lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal _
nFileSystemNameSize As Long) As Long

Public Function VolumeSerialNumber(ByVal RootPath As String) As String
Dim VolLabel As String
Dim VolSize As Long
Dim Serial As Long
Dim MaxLen As Long
Dim Flags As Long
Dim Name As String
Dim NameSize As Long
Dim s As String

If GetVolumeSerialNumber(RootPath, VolLabel, VolSize, Serial, MaxLen, _
Flags, Name, NameSize) Then
s = Format(Hex(Serial), "00000000")
VolumeSerialNumber = Left(s, 4) + "-" + Right(s, 4)
Else
'En caso de error saldrá este número
VolumeSerialNumber = "0000-0000"
End If
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: El código del resto...

Publicado por José (129 intervenciones) el 01/03/2003 02:31:58
'ESTO MUESTRA LOS SERIALES DE TU PC EN UN MSGBOX: (para que sepas cuales son)
MsgBox "El número de serie de la unidad de disco C:\ es:" & VolumeSerialNumber("C:\") 'Muestra el nº de serie del disco
MsgBox "El número de serie de la unidad de disco D:\ es:" & VolumeSerialNumber("D:\") 'Muestra el nº de serie del disco
MsgBox "El número de serie de la unidad de CD-Rom E:\ es:" & VolumeSerialNumber("E:\") 'Muestra el nº de serie del disco

EN EL LOAD DEL FORM PRINCIPAL:

If Not VolumeSerialNumber("C:\") = "2C5B-14F9" Then 'por ejemplo.
MsgBox "El serial del PC no coincide"
End
Else
MDIForm1.Show 'si el serial coincide, abre el programa.
End If

No sé si eso te sirva.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:proteger

Publicado por max (4 intervenciones) el 03/04/2003 22:49:06
como hago para que el usuario proteja sus carpetas con mi programa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar