Dobrý den, při spuštění programu zjistíte, zda již jedna instance běží. Pokud ano, předáte ji pomocí meziprocesové (IPC) komunikace parametry a spuštěná instance tak dokáže na spuštění nové instance reagovat. Obvykle se nově spuštěná instance ihned ukončí, takže vše budí dojem, že na spuštění reaguje pouze již spuštěná instance. IPC znamená http://cs.wikipedia.org/wiki/Meziproceso... Ke komunikace využijete IpcChannel třídu http://msdn.microsoft.com/en-us/library/... Návod jak to skutečně použít naleznete například tady http://www.codeguru.com/csharp/csharp/cs... Zjistit jestli aplikace už běží lze pomocí systémového zámku Mutex:
Dim prvniInstance As Boolean
Dim mutex = new Mutex(false, "nejakeUnikatniJmeno", <System.Runtime.InteropServices.Out>prvniInstance)
Pozor: Unikátní jméno volte opravdu unikátní, tyto zámky jsou sdílené a určitě nebudete rád, když vám bude kolidovat s jiným programem.
|