External for running one instance on windows

Chris Sheffield revlist at cableone.net
Mon Jul 18 12:15:52 EDT 2005


Hi Trevor,

This is great.  I've been looking for a good solution to this problem  
for quite some time.  I've been using a partial solution with the  
EXT.dll, but it doesn't always work.

One question:  Will this work on any version of Windows, or is it  
specific to, say, 2000/XP?

Chris


On Jul 16, 2005, at 4:14 PM, Trevor DeVore wrote:

> Hi people of the list,
>
> I put together an external this morning that you can use to limit  
> your application to one running instance on Windows.  It uses a  
> mutex object on Windows which you can read about here:
>
> <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ 
> dllproc/base/using_mutex_objects.asp>
>
> There is a readme with the archive but basically there are two  
> handlers you use:
>
> get ewinRegisterApp("My_App_Unique_String")
> ewinUnregisterApp
>
> You can ewinRegisterApp("My_App_Unique_String") when your app first  
> launches.  If it returns true then there is only one instance of  
> your app running.  If it returns false then another app has  
> registered the same string (in this case "My_App_Unique_String")  
> and you should quit.
>
> When you quit your app you call ewinUnregisterApp to release the  
> mutex object you created with ewinRegisterApp().
>
> Now you may be asking yourself what would happen if your app  
> crashes.  Would ewinRegisterApp() still return false?  The answer  
> is no, it would return true.  Windows knows that the app that  
> created the original mutex object has gone the way of all  
> misbehaved software and it will gladly give you control of the  
> orphaned mutex object.
>
> Anyway, I've tested this on Win XP so far and it seems to be  
> working nicely.  Note that for every time you call ewinRegisterApp 
> () in one app you need to call ewinUnregisterApp in order for  
> another app to be able to have ewinRegisterApp() return true.  I  
> may fix that, I may not.  It doesn't really bother me.
>
> Anyway, you can download it at:
>
> <http://www.mangomultimedia.com/download/revolution/enhancedwin/ 
> EnhancedWin.zip>
>
> There is also a command called ewinOpenURL in the external that  
> will always do the right thing when trying to open a url or launch  
> an email client on Windows.  You may find that useful as well.
>
> If you have any questions or problems let me know.  If you want the  
> source code you can have that too.  It was compiled with Visual C+ 
> + .Net.
>
> -- 
> Trevor DeVore
> Blue Mango Multimedia
> trevor at mangomultimedia.com
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your  
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution
>

------------------------------------------
Chris Sheffield
Read Naturally
The Fluency Company
http://www.readnaturally.com
------------------------------------------





More information about the use-livecode mailing list