Main Topics
Browse All TopicsHi Friends,
We have developed a Windows application in C# using VS 2008 with MS-Access as back end, now for sales and marketing purposes we need to distribute free demos of this application. And we want this application runs for 30 days on a single machine and then expires and requires a unique serial number to activate the same application.
Demo of application will be available on CDs, DVDs as well download from website. Software Activation key will be provided by Phone and through our website.
thanks in advance,
Arun Vashist
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
Armadillo is a commercial product that locks your executable according to your requirements:
http://www.siliconrealms.c
Product details:
http://store.digitalriver.
we use it with our products, it is very good
**************************
The Following is to fetch the system variables
Imports System.Management
Imports System.Collections
Imports System.IO
Public Class HardwarInfo
Friend DevicesArr() As String = {"Win32_Processor", "Win32_Keyboard", "Win32_PointingDevice", "Win32_CDROMDrive", "Win32_DiskDrive", _
"Win32_FloppyDrive", "Win32_TapeDrive", "Win32_1394Controller", "Win32_BaseBoard", "Win32_MotherboardDevice",
"Win32_BIOS", "Win32_Bus", "Win32_CacheMemory", "Win32_FloppyController", "Win32_IDEController", _
"Win32_InfraredDevice", "Win32_IRQResource", "Win32_MemoryArray", "Win32_MemoryDevice", "Win32_OnBoardDevice", "Win32_ParallelPort", "Win32_PCMCIAController", _
"Win32_PhysicalMemory", "Win32_PhysicalMemoryArray
"Win32_SCSIController", "Win32_SerialPort", "Win32_SerialPortConfigura
"Win32_SoundDevice", "Win32_SystemEnclosure", "Win32_SystemMemoryResourc
"Win32_USBController", "Win32_USBHub", "Win32_NetworkAdapter", "Win32_NetworkAdapterConfi
"Win32_AssociatedBattery",
"Win32_VoltageProbe", "Win32_Printer", "Win32_POTSModem", _
"Win32_POTSModemToSerialPo
"Win32_VideoConfiguration"
Enum Devices
Win32_Processor
Win32_Keyboard
Win32_PointingDevice
Win32_CDROMDrive
Win32_DiskDrive
Win32_FloppyDrive
Win32_TapeDrive
Win32_1394Controller
Win32_BaseBoard
Win32_MotherboardDevice
Win32_BIOS
Win32_Bus
Win32_CacheMemory
Win32_FloppyController
Win32_IDEController
Win32_InfraredDevice
Win32_IRQResource
Win32_MemoryArray
Win32_MemoryDevice
Win32_OnBoardDevice
Win32_ParallelPort
Win32_PCMCIAController
Win32_PhysicalMemory
Win32_PhysicalMemoryArray
Win32_PNPEntity
Win32_PortConnector
Win32_PortResource
Win32_SCSIController
Win32_SerialPort
Win32_SerialPortConfigurat
Win32_SMBIOSMemory
Win32_SoundDevice
Win32_SystemEnclosure
Win32_SystemMemoryResource
Win32_SystemSlot
Win32_USBController
Win32_USBHub
Win32_NetworkAdapter
Win32_NetworkAdapterConfig
Win32_AssociatedBattery
Win32_Battery
Win32_CurrentProbe
Win32_PortableBattery
Win32_UninterruptiblePower
Win32_VoltageProbe
Win32_Printer
Win32_POTSModem
Win32_POTSModemToSerialPor
Win32_DesktopMonitor
Win32_DisplayConfiguration
Win32_DisplayControllerCon
Win32_VideoConfiguration
Win32_VideoController
Win32_Fan
Win32_HeatPipe
Win32_Refrigeration
Win32_TemperatureProbe
End Enum
Private Searcher As ManagementObjectSearcher
Private Device As ManagementObject
Public Function GetDeviceInfos(ByVal DeviceName As Devices) As Hashtable
Dim DeviceInfosArr As New Hashtable
If DevicesArr(DeviceName).Ind
Searcher = New ManagementObjectSearcher("
Else
Searcher = New ManagementObjectSearcher("
End If
For Each Device In Searcher.Get
For Each Prop As PropertyData In Device.Properties
If Not DeviceInfosArr.ContainsKey
DeviceInfosArr.Add(Prop.Na
End If
Next
Next
Return DeviceInfosArr
End Function
End Class
**************************
**************************
The Following function is an example to check the hardware info using the class
Private Function isRegistered() As Boolean
If Command() <> "#PAMA#ADMCPA#ACD#" Then
Dim HardInfo As New HardwarInfo
Dim Checker As New MyEncryptor("123")
Dim Deviceinfo As New Hashtable
Dim F As New StreamReader("RegFile.reg"
Dim strKey As String = F.ReadLine()
Deviceinfo = HardInfo.GetDeviceInfos(Ha
strKey = Checker.Decrypt(strKey)
If strKey = Deviceinfo("MACAddress") Then
Return True
Else
Return False
End If
Else
Return True
End If
End Function
Hope this would be helpful.
Your application is compiled and ready for shipping. So, I wouldn't waste any time to develop my own code to protect my executable (by the way, pretty easy to reverse engineer), Instead try to use the famous InstallShield (http://www.flexerasoftwar
Business Accounts
Answer for Membership
by: LefarfadaisPosted on 2009-10-11 at 14:06:57ID: 25547394
Good Day
I would suggest using the Registry of the machine.
Upon install of the software, in your setup project (If your using one) there is an option where you can add a key to the registry. That key could be the datetime of install and in your program, check the difference with current DateTime. I don't have an example at the moment, but that could be a solution. If you need an example, reply me, I'll build one (at least I'll try, sorry for not being an expert yet).
Enjoy!