Home All Groups Group Topic Archive Search About

How to uniquely identify a process?

Author
22 Nov 2006 6:23 AM
01423481d
Hi all

The question is simple:
How can I find out if an executable is running apart from verifying
process name, path, program title etc which does not ensure uniqueness?
I think classid (GUID) could help but I dont know if it is the right
direction and how to achieve this. Any advise is welcomed!

Thanks

Author
22 Nov 2006 7:31 AM
01423481d
014234***@gmail.com ¼g¹D¡G

> Hi all
>
> The question is simple:
> How can I find out if an executable is running apart from verifying
> process name, path, program title etc which does not ensure uniqueness?
> I think classid (GUID) could help but I dont know if it is the right
> direction and how to achieve this. Any advise is welcomed!
>
> Thanks

OK I got it

Process.getType.GUID.toString()
Author
22 Nov 2006 8:09 AM
Tom Shelton
014234***@gmail.com wrote:
> Hi all
>
> The question is simple:
> How can I find out if an executable is running apart from verifying
> process name, path, program title etc which does not ensure uniqueness?
> I think classid (GUID) could help but I dont know if it is the right
> direction and how to achieve this. Any advise is welcomed!
>
> Thanks

This is generally done with a mutex.

public sub main
  dim created as bool
  dim instanceCheck as new mutex (true, "MY_UNIQUE_MUTEX_NAME",
created)

  if created then ' we got the mutex
     try
         application.run (new form1())
     finally
          instanceCheck.ReleaseMutex () ' make sure we release this bad
boy
    end try
  else
     ' process already running
     ' i've been known to use WM_COPYDATA to send messages to prev
instances :)
  end if

end sub

HTH,
Tom Shelton