Re: How can I find out if a program is already running
- From: Mark Leisher <mleisher crl nmsu edu>
 
- To: Zoltan Boszormenyi <zboszor freemail hu>
 
- Cc: gtk-list <gtk-list gnome org>
 
- Subject: Re: How can I find out if a program is already running
 
- Date: Fri, 09 Dec 2005 10:08:16 -0700
 
Zoltan Boszormenyi wrote:
Hi,
I need to find out whether an instance of a program is already running
and possibly unminimize it or bring it above any other windows, so
I can prevent an application started again.
Is is possible using GTK-1.2, or GTK-2.x, and how?
The following procedure is an old X11 trick. It will not work on Windows.
0. Add code to your program to handle GDK_SELECTION_CLEAR events. See 5 below 
for what this code should do.
1. At startup of the program, create an atom with gdk_intern_atom().
2. Use gdk_selection_owner_get() on the atom.
3. If the selection owner is NULL, then call gdk_selection_owner_set() with 
the time_ parameter set to GDK_CURRENT_TIME and the send_event parameter set 
to FALSE.
4. Else, there is a valid owner of the atom, so the program is already 
running. Assert ownership of the selection with gdk_selection_owner_set() 
again. This causes the running application to lose ownership and call the code 
to handle GDK_SELECTION_CLEAR events. Then exit.
5. The code to handle GDK_SELECTION_CLEAR events should do 2 things:
  A. If minimized, unminimize.
  B. Assert ownership of the selection again.
This doesn't work on Windows because the GDK selection API apparently only 
works within applications and not globally like they do in X11.
--
---------------------------------------------------------------------------
Mark Leisher
Computing Research Lab            A sneer is the weapon of the weak.
New Mexico State University         -- James Russell Lowell (1819-1891)
Box 30001, MSC 3CRL
Las Cruces, NM  88003
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]