[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.platform.swt] Re: How to know if application already running?

I would run it on port 25, the smtp mail server port.  This port is fairly commonly allowed, but few systems actually run a mail server.

As to the Display class, it is a static method which to the best of my knowledge, queries the system for all open Shell(s), even the native ones, and returns them in an array.  I use this method to show error dialogs when my application unexpected quits.  But, all in all, I'd use sockets first.  More reliable, more flexible, less confusing, and all around a more elegant hack.

Daniel

Benjamin Pasero wrote:
Doug Pearson wrote:

  
I'd thought about using files, but hadn't considered a socket
solution.    That sounds good and will work fine on any platform. 
Thanks,
    

Maybe if you could share your solution with Sockets here? I was thinking
of implementing a Socket-way
to get out if my application is already running. But I wonder what port
to chose to run the Socket through?

Ben

  
Doug

Benjamin Pasero wrote:

    
Daniel Spiewak wrote:


      
You have several options on this one, only one of them having to do
with SWT itself.  The Display class has a method which returns an
array of all the Shell(s) open on that Display.  Alternatively, you
can use file-locking, even server sockets to implement the behavior.
        

As far as I can see, a new Display class is created with each new SWT
application. So, how should one display
know of the Shells of another application? I dont think (and checked)
that its working.

sockets seem to be the best (and most common) way to achieve this.

Ben


      
Daniel

Doug Pearson wrote:


        
Is there any way to detect from one SWT application if another SWT
application is already running?

In Windows the usual solution to this was using ::FindWindow() to
look for the window class (or name).

Is there anything like that or any alternative available in SWT?

Doug