HIii
I m making window application, for which i have already made a setup, but in that i want to include some more pages like terms and condition page etc, . Also in this i want to set the registries as well, like when my application is installed on the client computer, so after a particular period of time it automatically expires and my application should not be copied on any other computer.......
So, kindly tell me the detailed steps for this.......:pretty:

Recommended Answers

All 27 Replies

Also you should not add registry information for a "trial period" in the installer itself, unless you want to add a custom action. If you add a registry key with the installer project itself then the project "owns" the setting and when it is uninstalled it will remove the key. I typically set/fetch trial license information when the app fires up for the first time. This also has a benefit if I only want someone to evaluate a product for 30 days I want that time to start when they first run the application, not when it is installed. In some cases people have to get their IT department to install an app and it can get installed but the user may not know it is there for some time ;)

Also you should not add registry information for a "trial period" in the installer itself, unless you want to add a custom action. If you add a registry key with the installer project itself then the project "owns" the setting and when it is uninstalled it will remove the key. I typically set/fetch trial license information when the app fires up for the first time. This also has a benefit if I only want someone to evaluate a product for 30 days I want that time to start when they first run the application, not when it is installed. In some cases people have to get their IT department to install an app and it can get installed but the user may not know it is there for some time ;)

Thats ok Mr. Scott.........
But Can you please tell me how can i do this in my main application.....
Can you please tell me the steps......:pretty:

I wonder if we should email serkan :X

He left me rep on the multicolour text thread so he is still haunting the boards...might be an idea :p It's his area of expertise right?

Serkan, we are in need of your help.

@VibhorG,
Here is a great link (suggested by serkan:) ) - http://www.simple-talk.com/dotnet/visual-studio/getting-started-with-setup-projects/

SUMMARY:

This article describes the basics of Visual Studio setup and deployment projects. Subsequent articles will cover advanced topics, including more on custom actions, .NET installer classes, and how to build an upgrade for the product.

I want to ask one thing .......
that i want to set a feature in my application such that after a particular period of time my application should automatically block.....And my application once installed, than should not be installed on other computer........?
Just tell me how to do this? Do i have to use registry concept or there is any other method for this......?
If there is any other concept for this, so kindly tell me which concept i should use.........? :pretty:

I want to ask one thing .......
that i want to set a feature in my application such that after a particular period of time my application should automatically block.....And my application once installed, than should not be installed on other computer........?
Just tell me how to do this? Do i have to use registry concept or there is any other method for this......?
If there is any other concept for this, so kindly tell me which concept i should use.........? :pretty:

I doubt any developer wants to post an example of how they have encoded a trial evaluation scheme into their application for obvious reasons. Take a look at these search results: Application Trial Expiration C#

I doubt any developer wants to post an example of how they have encoded a trial evaluation scheme into their application for obvious reasons. Take a look at these search results: Application Trial Expiration C#

Actually, in my application there is no trial period.I just want to make my application valid for a period of 1 year after it is installed on target computer.And once installed then it should not be copied on any other computer.My application has no trial period,just want to make it accessible for 1 year.After 1 year ,it should automatically blocks.l
So can you help me regarding this............!!

Actually, in my application there is no trial period.I just want to make my application valid for a period of 1 year after it is installed on target computer.And once installed then it should not be copied on any other computer.My application has no trial period,just want to make it accessible for 1 year.After 1 year ,it should automatically blocks.l
So can you help me regarding this............!!

I may not have the answer for you, but more information is needed. Is this a client/server application? If not, how would you expect to invalidate the license if they installed on another machine. Or, have you considered registration via internet and requiring a periodic license validation check using that same strategy?

EDIT: If you want to ship each installation with a built in appx expiration that the setup itself would adhere to and prevent user from completing an installation past that period, you could build this into the setup with custom action. However, this still doesn't "block" your already installed application from continuing to execute/startup past this period.

Furthermore, getting past date checks used by a setup are easily gotten around by temporarily changing the system date, but you could also depend on checking the last modification date of a system file....

I may not have the answer for you, but more information is needed. Is this a client/server application? If not, how would you expect to invalidate the license if they installed on another machine. Or, have you considered registration via internet and requiring a periodic license validation check using that same strategy?

EDIT: If you want to ship each installation with a built in appx expiration that the setup itself would adhere to and prevent user from completing an installation past that period, you could build this into the setup with custom action. However, this still doesn't "block" your already installed application from continuing to execute/startup past this period.

This is not a client/server application.And yes i expect to invalidate the license if they installed on another machine.
I dont know what is appx expiration....
Well this is the first time i am making the setup. i m not very much familiar with it.......
It is not very much clear to me ...........:sad:

This is not a client/server application.And yes i expect to invalidate the license if they installed on another machine.
I dont know what is appx expiration....
Well this is the first time i am making the setup. i m not very much familiar with it.......
It is not very much clear to me ...........:sad:

Before you begin this solution to validate the license is still in effect, I would suggest it beneficial to determine exactly what your requirements are. In order to prevent an installation on more than X machines, you would need to perform some sort of online authentication. Is that your intention?

In the past, when install disks were shipped on floppies, vendors used to rewrite information to one of the install disks to control the number of allowed installs. As you can imagine, this sometimes led to some issues requiring support staff to intervene or ship new disks when a client needed to reinstall or they wanted to move the application to a different machine. Regardless, you cannot implement this behavior if the media is not rewritable and copy protected.

Setup and Deployment system won't help you to set expire date/time or some restrictions of an application. You have to write some code. Please have a look at http://www.codeproject.com/KB/cs/Trial_Maker.aspx.

Thankyou very much to all For your replies.......:)

Let us all know what you decide so that others might benefit from your experience. Any new information you provide might also lead to possible answers/responses.

Well i m still searching and working on it, as soon as i finished it, i will defiantly tell you all.......
But all your suggestions are really helpful for me........:pretty:
I did not know anything about deployment of setup, and registries before. but now i would say that i have some knowledge , and i can probably make a setup now.....
But i am still working hard on registries.............
Thank you all once again for your great help....... :)

You could also make an ASP.NET key server to validate application installs. I do that for one of my applications but it is a pain to maintain.

You could also make an ASP.NET key server to validate application installs. I do that for one of my applications but it is a pain to maintain.

Well Mr. Scott it will be grateful to learn new things from you,
So Can you tell me or show me how can i do that......:)

Ooooh that is a mess. Try to get this key generating stuff working first and see what you like/don't like and then come back. For this you need:
1) Client validation library
2) Server key-generating library
3) Common keying between libraries 1 & 2
4) ASP.NET web application (or roll your own socket code) to validate incoming requests
5) A web client (or socket client) on the installation machine to hit the webserver
6) An administrative application to generate keys and stick them in a database to validate inbound client requests
7) An activation table with the history of each validation attempt, source ip, license key, successful
8) A mechanism to override the client machine key validation in case they do not have internet access
9) A set of fields on the client machine that you want to include to make the machine "unique". Do not use the MAC address.

This is a pretty big undertaking :) Just be thinking about it

Ooooh that is a mess. Try to get this key generating stuff working first and see what you like/don't like and then come back. For this you need:
1) Client validation library
2) Server key-generating library
3) Common keying between libraries 1 & 2
4) ASP.NET web application (or roll your own socket code) to validate incoming requests
5) A web client (or socket client) on the installation machine to hit the webserver
6) An administrative application to generate keys and stick them in a database to validate inbound client requests
7) An activation table with the history of each validation attempt, source ip, license key, successful
8) A mechanism to override the client machine key validation in case they do not have internet access
9) A set of fields on the client machine that you want to include to make the machine "unique". Do not use the MAC address.

This is a pretty big undertaking :) Just be thinking about it

You said right Mr. Sknake.
This is really a mess...........
But once again thanks for your suggestion.....:pretty:
It might help me in future.........

this thread is still open?

commented: Post some useful information. Don't spam. -4

Yes, this thread is still open for any new suggestions and any new ideas:icon_idea:

Why not use a ready-to-use licensing scheme such as CryptoLicensing for this? It supports the day-limited trial scenario that you want.

Best way to add more functionality in setup file is
first way is add custom Action then User Interface and after use Setup Registry.
It is a one right way to add more functionality in setup file.

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.