Click here to Skip to main content
15,392,679 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
Hi All,

i have an application. My requirement is that application should open for only 10 times. if it is opened 11th time or greater it should display a message box and exit.

I tried storing the count in registry but it working when we tried in single PC only.
My requirement is If the application has opened in 10 different PCs, it should not open for the 11th time.

Can we store and update the values in project resources?

Please can any one help me?
How to solve this problem?

I need to deploy my application in different Client locations which are not connected through a LAN
Updated 20-Feb-12 17:55pm
SteveAdey 13-Feb-12 10:05am
Try accessing the registry remotely from the other PCs.
I've given this a 4, as I think it's an interesting question.
Sanju Sanju 15-Feb-12 2:32am
It will be fine if there is LAN. but i need the same for those PCs which are not connected in a LAN also
SteveAdey 15-Feb-12 16:54pm
Then without the power of the ether, I think you may be stuffed, there has to be some way of the machines knowing about each other, otherwise what you are asking is impossible.

ok, first of all what you asked is not possible without each computer having internet access.
first way is to create a database in a central computer, check the initialization count and update a table each time the program runs. this is the easiest and most convenient way.
another way is to put the power of cloud to use. create a microsoft skydrive account. create a file there that stores how many times the program had run. on initialization of your program, download that file using skydrive .net api link, update it, and upload it. do not forget to encrypt the file contents to prevent tampering with it.
if you do not have any means to operate a central server or skydrive, as an alternate way, you can use google docs. this is a long way and not optimized in any means, but its what comes to my mind now. using google docs api, store how many times the application had run in a spreadsheet.
as a funny way, create a twitter account and tweet zero. on opening the program, read the final tweet and retweet the update using twitter api.
I'd stick with skydrive though
Michael dg 13-Feb-12 8:38am
I'll recommend this one.
SteveAdey 13-Feb-12 10:01am
I'd recommend your one Michael ;-) It doesn't need internet access.
MCY 13-Feb-12 10:13am
yet still needs lan access :)
SteveAdey 13-Feb-12 10:48am
Yeah, but your's would need lan and internet access. I'd also assume (could be wrongly) that since there are multiple PCs without internet access, that they would be networked.
MCY 13-Feb-12 12:55pm
I thought he sold several copies to different locations. for different offices of a company for example, so they do not have lan. but if they are all in the same network (same building maybe) a lan solution will also work.
SteveAdey 13-Feb-12 14:56pm
You could be right, but it's not clear without the proper requirements of what he's trying to achieve. Without his input, which now seems to be missing, he may have solved this one by himself.
Sanju Sanju 20-Feb-12 23:55pm
MCY is Correct. I need to deploy in different locations which are not connected through a LAN
by the way. you can also create a windows service application and installed it on one of the computers.
the windows service application will listen for incoming count request and answered it with the current execution count. in communication with the windows service and the other windows application, you can use .NET Remoting or the WCF.
SteveAdey 13-Feb-12 10:02am
Of course it would have to build it as a peer to peer system in case that 'one' computer was off, so they could all act as counter keepers. Makes it a little more complex though.
This would be by far the most robust solution.
MCY 13-Feb-12 10:12am
yeah good one. but Steve's point is true & p2p system may be little complex
Michael dg 14-Feb-12 2:11am
well we can say it as p2p. but my point was one windows service will act as a central counter or replacement for the central database. :)
SteveAdey 14-Feb-12 4:27am
My point was, that it shouldn't be one windows service, I wasn't just rewording what you said. i.e. distributed counters.
Sanju Sanju 21-Feb-12 0:01am
Im not familiar with WCF and remoting. will it work for systems which doesnt have Lan ?? If yes, please give me an example on how to create this?
Of course it will work for single PC if you store the count on the local machine. But if you put it on a centralized storage, say, a database where all of the applications will connect, retrive, and update the count, I believe that will do the trick.
Sanju Sanju 9-Feb-12 0:15am
Thank you For your quick responce.
Yes but there is no Centralized location and also no internet connection. Im not able to maintain a database. i need the solution with out database
walterhevedeich 9-Feb-12 0:30am
The database is only an example. You can use other data sources as long as all your applications are able to access it, through network(not necessarily with Internet connection). If you cannot make a setup like that, I believe there's no other way.
You may see below articles:
Limiting the Number of Instances Running
Sanju Sanju 9-Feb-12 0:20am
Thank you Al Moje.
My requirement is not to restrict the number of instances but to restrict the number of executioons.
use the global.asax page for this one and use Session for temporary storage and
and make some condition or use javascript

visit this forums below for more information that is related to your question[^][^]

please vote or Accept solution
If this will help you
Sanju Sanju 9-Feb-12 1:29am
Zyck thanks for your reply. But im using windows application. Is there any way for windows app?
zyck 9-Feb-12 6:32am
wrong answer hehehe by the way you can use DataTable or HashTable
MCY 11-Feb-12 15:33pm
yeah figured out something is wrong hehe
Check this out[^]

Should be what you need.

Ok, just read your comment and this link won't help.

You could look at using the registry to store this kind of thing, but it's generally an easy thing to get around if you really want to get around your restriction.
MCY 11-Feb-12 15:39pm
registry wont work for multiple computers
SteveAdey 13-Feb-12 6:25am
That wasn't initially stipulated. Garbage in, garbage out ;-)
MCY 13-Feb-12 12:52pm
heh :)
SteveAdey 13-Feb-12 10:04am
The registry could work for multiple computers as you can access registries remotely.
You should store couter value in Application["count"] of global.asax page.
MCY 11-Feb-12 15:34pm
it is a windows app

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900