Caducar programa con tiempo ?

Iniciado por luis456, 30 Noviembre 2013, 12:31 PM

0 Miembros y 1 Visitante están viendo este tema.

luis456

Hola bien mi idea no es hacer un trial ni demo solo nesecito una rutina simple que me detenga el programa sin mesagebox ni nada solo que no funcione ni haga nada al ejecutarlo,


Código (vbnet) [Seleccionar]
Public Class Form1
   Dim MIN As Integer = 0
   Dim MAX As Integer = 99

   Private Sub FrmLogin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Me.ControlBox = False ' Elimino todos los controles del formulario
   End Sub

 

   Private Result1 As Int32(), Result2 As Int32(), Result3 As Int32()
   Dim Sep As Object
   Dim texbox7 As Object
   Dim o As Object
   Private _val As Object
   Private _val1 As Integer
   Dim TextBox As TextBox()

   ReadOnly Property Num1 As Int32
       Get
           Return CInt(TextBox1.Text)
       End Get
   End Property

   ReadOnly Property Num2 As Int32
       Get
           Return CInt(TextBox2.Text)
       End Get
   End Property
   ReadOnly Property Num3 As Int32
       Get
           Return CInt(TextBox3.Text)
       End Get
   End Property


Private Property KeyAscii As Integer

   Private Property Val(ByVal form1 As Form1, ByVal p2 As Object) As Object
       Get
           Return _val
       End Get
       Set(ByVal value As Object)
           _val = value
       End Set
   End Property

   Private Property Val(ByVal p1 As Object) As Integer
       Get
           Return _val1
       End Get
       Set(ByVal value As Integer)
           _val1 = value
       End Set
   End Property

   Private Sub Sumar(ByVal sender As Object, ByVal e As EventArgs) _
   Handles Calcular.Click

       Dim TextBoxCount As Short = -1

       TextBox = {TextBox7, TextBox8, TextBox9, TextBox10, TextBox11, TextBox12, TextBox13, TextBox14, TextBox15, TextBox16, TextBox17, TextBox18, TextBox19, TextBox20, TextBox21, TextBox22, TextBox23, TextBox24, TextBox25, TextBox26, TextBox27, TextBox28, TextBox29, TextBox30, TextBox31, TextBox32, TextBox33, TextBox34, TextBox35, TextBox36, TextBox37, TextBox38, TextBox39, TextBox40, TextBox41, TextBox42, TextBox43, TextBox44, TextBox45, TextBox46, TextBox47, TextBox48, TextBox49, TextBox50, TextBox51, TextBox52, TextBox53, TextBox54, TextBox55, TextBox56, TextBox57, TextBox58, TextBox59, TextBox60}

       Result1 = {Num1 + 1, Num1 + 20, Num1 + 30} _
                 .Distinct().ToArray ' Elimino duplicados

       Result2 = {Num2 + 10, Num2 + 20, Num2 + 30} _
                 .Distinct().ToArray ' Elimino duplicados

       Result3 = {Num3 + 10, Num3 + 20, Num3 + 30} _
                 .Distinct().ToArray ' Elimino duplicados,,,,,,,,,,,

Array.Sort(Result1) : Array.Sort(Result2) : Array.Sort(Result3)  ' Ordeno los Items

       ' funcion
       For Each Number As Int32 In Result1
           TextBoxCount += 1
           TextBox(TextBoxCount).Text = Number
       Next

       For Each Number As Int32 In Result2
           TextBoxCount += 1
           TextBox(TextBoxCount).Text = Number
       Next

       For Each Number As Int32 In Result3
           TextBoxCount += 1
           TextBox(TextBoxCount).Text = Number
       Next


End Class



gracias de antemano

Luis
Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

Cita de: luis456 en 30 Noviembre 2013, 12:31 PMnesecito una rutina simple que me detenga el programa sin mesagebox ni nada solo que no funcione ni haga nada al ejecutarlo,

¿Puedes especificar más detalládamente que es lo que necesitas?,
¿Como es una rutina que no haga NADA? xD,
muestras el código de "los números" pero a mi parecer no tiene nada que ver con la duda que has formulado.

saludos








luis456

Vale no explique bien jej Elektro

Cuando dije que no haga nada no es a la rutina sino al programa,la mayoría de las rutinas enseña un mensaje cuando se bloquea o caduca un programa. lo que necesito es que al llegar el tiempo o fecha de caducidad.simplemente no se ejecute el programa ni avise de nada y el código que puse es para mas o menos saber donde poner esa rutina

gracias :)

Luis
Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

#3
Cita de: luis456 en  1 Diciembre 2013, 11:45 AMla mayoría de las rutinas enseña un mensaje cuando se bloquea o caduca un programa. lo que necesito es que al llegar el tiempo o fecha de caducidad.simplemente no se ejecute el programa ni avise de nada

Y no puedes coger el ejemplo "Trial" que te mostré en otro post (o cualquier otro código trial en Google), y en lugar de mostrar un msgbox cuando la fecha caduca, eliminar esas órdenes y añadir otras para salir de la aplicación ¿?, vaya, si hasta eso tenemos que ayudar a hacer...

-> Application.Exit Method

-> Environment.Exit Method

-> End Statement








luis456

Cita de: EleKtro H@cker en  1 Diciembre 2013, 12:13 PM
Y no puedes coger el ejemplo "Trial" que te mostré en otro post (o cualquier otro código trial en Google), y en lugar de mostrar un msgbox cuando la fecha caduca, eliminar esas órdenes y añadir otras para salir de la aplicación ¿?, vaya, si hasta eso tenemos que ayudar a hacer...

-> Application.Exit Method

-> Environment.Exit Method

-> End Statement


Buaa no me regañes que estoy viejito jejeje como te he dicho esto del injerto vb con net todavia no logro cojerle la maña :) y esos ejemplos son alta costura para mi todavia y me gusta irle cojiendo el tranquillo con ejemplos mas modestos

Luis



Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

#5
¿Entonces lo solucionaste como te dije?

El código que te mostré tiene poco de "alta costura" xD, me basé en cosas my sencillas (fácilmente craqueables), aunque tampoco soy un genio de la ingeniería inversa, pero no merece la pena esforzarse mucho más para añadir protección trial "simple", el que pretenda usar la aplicación de manera "ilegal", y teniendo los conocimientos necesarios, siempre va a poder craquear el mecanismo de protección.

Si quieres añadir un sistema de protección trial "casi segura" deberías usar software dedicado a ello como es Crypto Licensing y además lo ofuscas.

Saludos








luis456

#6
Vuelvo al ataque :)

Cuando digo código simple es mas o menos como este que de paso todavía no logro hacerlo funcionar jejeje bien mi idea es de entender como funciona y que sea crakeable no importa ya que este programa(el mio) no creo nadie lo compre jjejeje es solo por el placer de programar algo que funcione,este codigo lo conseguí trasteando por la red

a ver ahora como lo pongo a funcionar en el codigo de mi super programa

Código (vbnet) [Seleccionar]
otra forma basica con un archivo:
Sub verificar()
   Set fso = CreateObject("scripting.filesystemobject")
   If fso.fileexists("c:\salida.txt") = True Then
       checar
       If a = 5 Then
           MsgBox "Licencia terminada", 32, "Licencia caducada"
           Set Form1 = Nothing
           End
       End If
   ElseIf fso.fileexists("c:\salida.txt") = False Then
       a = "1"
       crearlo
   End If
End Sub

Sub crearlo()
   Open "c:\salida.txt" For Output As #1
       Print #1, a
   Close #1
   SetAttr "c:\salida.txt", vbHidden
End Sub

Sub checar()
   leerlo
   a = a + 1
   crearlo
End Sub

Sub leerlo()
   SetAttr "c:\salida.txt", vbNormal
   Dim foo As Integer

   foo = FreeFile
   Open "C:\salida.txt" For Input As #foo
       a = Input(LOF(foo), #foo)
   Close #foo
End Sub

Private Sub Form_Load()
verificar
End Sub



Luis

Elektro plis no me fustigues duro jejejej
Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

#7
Cita de: luis456 en  2 Diciembre 2013, 17:44 PMmi idea es de entender como funciona

En resumen, lo que hace el código es escribir el número de usos de la aplicación, en un archivo.

El método VERIFICAR comprueba si existe el archivo SALIDA, si no existe, crea el archivo SALIDA y escribe un 1 (primer uso),
si el archivo ya existe, se lee el último número que hay escrito al final del archivo y se le añade el siguiente número al final del archivo  (Ejemplo: 4 >> 5),
si el número de usos llega a 5, se muestra el mensaje de caducidad.

Es obvio que ese tipo de protección es para un trial de usos (no un trial de tiempo).

Cita de: luis456 en  2 Diciembre 2013, 17:44 PMElektro plis no me fustigues duro jejejej

... ¡ Cuando dejes de usar marranadas de VB6 y VBS ! :xD, ese código "simple" está VB6-estlizado de principio a fín.

EDITO:
De hecho puedes reproducir lo que hace ese código en muchas menos lineas sin necesidad de intermediar con archivos de texto ni usar técnicas de VB6, usando My.Settings:

Código (vbnet) [Seleccionar]
private shadows sub Load() handles mybase.load
   my.settings.Contador += 1
   checar()
End sub

sub checar()

   if my.settings.Contador => 5 then
      msgbox("caducado")
      ' application.exit()
   end if

end sub


Cita de: MSDNCreating Application Settings at Design Time

At design time, you can create application settings in two ways: by using the Settings page of the Project Designer, or by using the Properties window for a form or control, which allows you to bind a setting to a property.
http://msdn.microsoft.com/en-us/library/a65txexh.aspx

Saludos!








luis456

Me esperaba lo peor jejej Elektro

esto es chino o ruso jejej " my.settings.Contador :" error -->no es miembro de la aplicacion y segun he visto deberia de configurarlo en propiedades del proyecto ?

:huh:

Luis

Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

#9
Cita de: luis456 en  2 Diciembre 2013, 18:45 PMesto es chino o ruso jejej

Por ese motivo te he dejado una url junto a una cita donde explica como usar las user settings, en la página de las propiedades del proyecto, hay una pestaña que se llama "Settings", para crear settings.



Si creas una Setting llamada "Contador", pues luego puedes acceder a ella de la manera que te he mostrado:

My.Settings.Contador = X

Saludos!