La Web del Programador: Comunidad de Programadores
 
    Pregunta:  17052 - NO PERMITIR LA COPIA DE MIS APLICACIONES
Autor:  Damián Hernandez
Hola ! .Me gustaria saber como puedo hacer para que luego de ser instaladas mis aplicaciones en vb, no puedan ser copiadas .
Si alguien me pudiera ayudar en cuanto al codigo a utilizar estare muy agradecido ya que mis conocimientos en vb no son amplios .gracias

  Respuesta:  Oswaldo Monagas
tal vez te sirva utilizando el serial o numero del HDD y lo estableces en un if condicional asi:
If serial = "6635983" then
'inicia el programa
else
msgbox "Ud. esta usando una copia de mi programa por favor dirijase a fulano de tal", ,"atencion" ' etc
end
end if
end sub

Aqui te mando un programita para obtener el serial del hdd y otras cosas. Descargar

Espero que te sirva

  Respuesta:  SuNcO
Lo ke yo hago para eso es esto :

Mi programa lee el numero de serie del disco duro, de ahi lo guarda en un archivo pero codificado (eso es facil) y luego lo envia por mail a mi cuenta o la persona me envia el archivo por el mirc o lo ke sea, el caso es ke yo lo decodifico y en base a eso lo codifico de nuevo pero usando otro algoritmo, y se lo envio

Ejemplo :

iqj29jysru97ju
ko909jnft66hy

Eso es lo ke se veria en el archivo, es lo mismo para mi, pero se ve diferente, asi ke mi programa leeria de nuevo el archivo ke se genera al ejecutarlo la primera vez y lee las 2 lineas y las decodifica y las compara, y si son iguales pues ya funciona

Para leer el numero de serie es :

Private Declare Function GetVolumeInformation Lib "kernel32" 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

NVolSize = 0: NVolNumber = 0: NMaxCompLength = 0
NFileSFlags = 0: NFileSBuffer = 0: NFileSNames = 0
ruta = "c:\"
ChDrive ruta
Nombre = Dir(ruta, vbVolume)
ret = GetVolumeInformation(ruta, Nombre, NVolSize, NVolNumber, NMaxCompLength, NFileSFlags, NFileSBuffer, NFileSNames)

If ret = 0 Then Label2.Caption = Left(Hex(NVolNumber), 4) & "-" & Right(Hex(NVolNumber), 4)

Aki mete el numero de serie en Label2

Cualkier duda con gusto te ayudo de nuevo