DigiTechin
asked on
Single instance application...
I have developed an application that takes custumized protocol links from a web page. I had to write a registry key to invoke the program but I have succeded.
Here is the scenario:
just like http, ftp, and ed2k links, I have written a registry key so that if a URL in a web page contains a specific protocol lets say "myapp" as in
<a href="myjavaapp://|paramet er_1|..... .|paramete r_n|">Clic k here</a>
"myjavaapp" is invoked and from the link above receives the parameters.
My Problem:
If "myjavaapp" is not running there is no problem. The application is started.
If "myjavaapp" is already running a new instance of the program is run. So I have two copies of the same program running on my desktop.
What should I do to make this program run in one instance? I have been told to create a file on startup of the application and delete when exited, but incase my application crashes the file would not be deleted, thus if I check the existanse of that file, since it would exist from a previous crash, the application would not run.
So what should I do other than "creating and deleting a file upon start and exit" option?
Here is the scenario:
just like http, ftp, and ed2k links, I have written a registry key so that if a URL in a web page contains a specific protocol lets say "myapp" as in
<a href="myjavaapp://|paramet
"myjavaapp" is invoked and from the link above receives the parameters.
My Problem:
If "myjavaapp" is not running there is no problem. The application is started.
If "myjavaapp" is already running a new instance of the program is run. So I have two copies of the same program running on my desktop.
What should I do to make this program run in one instance? I have been told to create a file on startup of the application and delete when exited, but incase my application crashes the file would not be deleted, thus if I check the existanse of that file, since it would exist from a previous crash, the application would not run.
So what should I do other than "creating and deleting a file upon start and exit" option?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
armoghan,
I already seen those. They both talk about locking a file, which is not what I intend to do.
My problem resides. If the program crashes, for one reason or another, I would get stuck.
I already seen those. They both talk about locking a file, which is not what I intend to do.
My problem resides. If the program crashes, for one reason or another, I would get stuck.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
sciuriware is write the lock finishes..
the other option is open a serverSocket, That is also the same as locking a file.
the other option is open a serverSocket, That is also the same as locking a file.
Thanks for your support armoghan, but please say "sciuriware is right" in stead of "write"
otherwise I feel a file myself.
Haha.
I found that the file locking works on all platforms in the world and has
some advantages: the locker can write some identification in the lock file.
That means that, again system independent, the system manager can findout
where such a file belongs to: it's very hard to find socket-locks in a living system.
One application: can you take a system down, knowing that all locking applications
have left? From the socket-method you couldn't tell; from the lock-method you can.
<*>
otherwise I feel a file myself.
Haha.
I found that the file locking works on all platforms in the world and has
some advantages: the locker can write some identification in the lock file.
That means that, again system independent, the system manager can findout
where such a file belongs to: it's very hard to find socket-locks in a living system.
One application: can you take a system down, knowing that all locking applications
have left? From the socket-method you couldn't tell; from the lock-method you can.
<*>
hahaha .
Thanx for correcting
Sorry sciuriware
My english is not that good and I scramble words while writing
Thanx for correcting
Sorry sciuriware
My english is not that good and I scramble words while writing
also see
http://www.javaworld.com/javaforums/showflat.php?Cat=2&Board=TheoryPractice&Number=12642&page=0&view=collapsed&sb=5&o=&fpart=1