Is there code in visual basic 2008 where i can set my program to expire every 30 days ?

Thank You

Recommended Answers

All 12 Replies

You could check into the FirstRun property, and somehow save that, and check it each time to program is run by using DateDiff....

i dont follow...do u have a sample code?

You can write the code to count from the day of first run to 30 days and just use a simple message box to display that the program is out of date and needs update.

This way,you can create another form that will accept some serial numbers to update the program so that it will continue for another 30 days and so on....!!!!

you can also save a record to the registry.

write a date of first run there.
then every time your program starts,
It checks the record you saved in the registry to find out if the 30days trial has finished.

The only problem in this type of licensing is when your client knows where you save that record.

Another way is to use licensing softwares.
But you need to pay for that software.

I dont know if there's free versions.
try Google search.

This is a nice codes i generated myself to solve this problem......!!!

You can study and look at what i did and improve upon it.....@@@

Try to copy and put into a blank form and debug it to see what happens but you need to change the day on your system date to the number indicated as 13....!! for the trial period to execute.....###

Public Class Form1

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

        If MsgBox("Are you sure to exit", MsgBoxStyle.YesNo, "Exit") = MsgBoxResult.No Then
            e.Cancel = True
        End If

    End Sub

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        fade_in()
        If Date.Now.Day <> 13 Then
            MsgBox("Your application is out-of-date and needs update", MsgBoxStyle.Information, "Trial mode")
            Me.Close()
        Else
            Me.Show()
        End If
    End Sub

    'Fade in
    Public Sub fade_in()
        For FadeIn = 0.0 To 1.1 Step 0.1
            Me.Opacity = FadeIn
            Me.Refresh()
            Threading.Thread.Sleep(100)
        Next
    End Sub


    'Fade out:
    Public Sub fade_out()
        For FadeOut = 90 To 10 Step -10
            Me.Opacity = FadeOut / 100
            Me.Refresh()
            Threading.Thread.Sleep(50)
        Next

    End Sub
End Class

i appreciate your help but i need it to stop the user for using the program. I basically want the user to be prompted for a password to launch the application and after 30 days that password stops working and they wont be allowed access

Can you guys help with this? Thanks

This is untested:

'Make a new form, put this code in it, and set it as your startup form
'Also, make a new user setting of the type "date" called Expiration_Date
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If My.Application.Deployment.IsFirstRun Then
            My.Settings.Expiration_Date = Now.Date
            My.Settings.Save()
        End If
        If DateDiff(DateInterval.Day, Now, My.Settings.Expiration_Date) > 30 Then '30 is the expiration date
            Dim Response As String = "~"
            While Response <> "Password here" And Response <> Nothing
                Response = InputBox("The 30 day trial is up! Please enter a password to continue using this software!", "Trial")
            End While
            If Response = Nothing Then End 'A crude, but effective, way of forcing a close
        End If
        Me.Hide()
        Mainform.show() 'If it passes all the tests, start the main program
    End Sub
End Class

This is not tested and may need debugging but:

Here is an example that creates settings then handles them, adjust the code to work for your program and/or handle the dates like

#
Public Function DateGood(NumDays As Integer) As Boolean

    'The purpose of this module is to allow you to place a time
    'limit on the unregistered use of your shareware application.
    'This module can not be defeated by rolling back the system clock.
    'Simply call the DateGood function when your application is first
    'loading, passing it the number of days it can be used without
    'registering.
    '
    'Ex: If DateGood(30)=False Then
    ' CrippleApplication
    ' End if
    'Register Parameters:
    ' CRD: Current Run Date
    ' LRD: Last Run Date
    ' FRD: First Run Date

    Dim TmpCRD As Date
    Dim TmpLRD As Date
    Dim TmpFRD As Date

    TmpCRD = Format(Now, "m/d/yy")
    TmpLRD = GetSetting(App.EXEName, "Param", "LRD", "1/1/2000")
    TmpFRD = GetSetting(App.EXEName, "Param", "FRD", "1/1/2000")

    DateGood = False

    'If this is the applications first load, write initial settings
    'to the register
    If TmpLRD = "1/1/2000" Then
        SaveSetting App.EXEName, "Param", "LRD", TmpCRD
        SaveSetting App.EXEName, "Param", "FRD", TmpCRD
    End If
    'Read LRD and FRD from register
    TmpLRD = GetSetting(App.EXEName, "Param", "LRD", "1/1/2000")
    TmpFRD = GetSetting(App.EXEName, "Param", "FRD", "1/1/2000")

    If TmpFRD > TmpCRD Then 'System clock rolled back
        DateGood = False
    ElseIf Now > DateAdd("d", NumDays, TmpFRD) Then 'Expiration expired
        DateGood = False
    ElseIf TmpCRD > TmpLRD Then 'Everything OK write New LRD date
        SaveSetting App.EXEName, "Param", "LRD", TmpCRD
        DateGood = True
    ElseIf TmpCRD = Format(TmpLRD, "m/d/yy") Then
        DateGood = True
    Else
        DateGood = False
    End If
End Function

'Usage
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    'Set timer and test
     If Not DateGood(30) Then
        MsgBox("Trial Period Expired!", vbExclamation, "Unregistered application")
        Me.Hide() 'Hide if not
    Else
        Me.Show() 'Show if good
    End If
 End Sub

These bits of code are excellent. However, I need need help making it work. I have an exe which was coded in AutoIt.. fully functional, I just need it linked or whatever to this bit of vb code up top so that it only runs for 30 days then becomes useless. any input is greatly appreciated

Any program that uses an expiry date is subject to being overridden by a program such as TimeStopper unless you can embed a call to an external (internet) time service periodically to get the actual date/time.

i need a code vb which i can add to my project, a code that can display greeting message with alart or music at specific time and date i set for the message to display and user or admin of my software will be able to add new date and greeting to the alart message box of when the greet box will display in future, lf any can help pls reply thanks

"A first chance exception of type 'System.Deployment.Application.InvalidDeploymentException' occurred in System.Deployment.dll" error occured durin run of code by Xcelled194.
Please Reply...

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.