NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.

Diskuze: Spustit pouze jednu instanci aplikace

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
Aktivity
Avatar
Martin Krejčí:17.3.2019 18:58

Zdravím,
mám tenhle VB kód aby se spustil pouze jeden proces aplikace:

Dim p() As Process
        p = Process.GetProcessesByName("Launcher")
        If p.Count > 1 Then
            End
        End If

Zajímá mě:

  1. Když bude v PC běžet úplně jiná aplikace se stejným názvem "Launcher", jak jednoznačně identifikovat tu mojí (vím, že se asi dá použít GUID, ale absolutně nevím jak, učím se "za pochodu")?
  2. Aplikace je Windows Forms (zastaralé, ale WPF neumím) - prý není dobré používat End u formulářových aplikací. Je to pravda? Čím nahradit (Application.Exit nefunguje)?

Zkusil jsem: Nemůžu použít Single instance volbu ve Visual Studiu - ta vyžaduje, aby spouštěcím prvkem byl formulář, ale já spouštím formulář (splashscreen) až když proběhne nějaký kód předtím.

Chci docílit: Aplikace zkontroluje, zda již není spuštěna, pokud ne pokračuje další kód. Aplikace by neměla být zaměněna s jinou aplikací se stejným názvem procesu ("Launcher.exe")

Editováno 17.3.2019 19:00
 
Odpovědět
17.3.2019 18:58
Avatar
krepsy3
Tvůrce
Avatar
krepsy3:17.3.2019 20:37

Ahoj, toto se běžně dělá pomocí tzv. Mutexu a a mutexového klíče. Tady na itnetworku je tutoriál pro C#, najdeš jej v sekci c# pro pokročilé. Netuším ale jak složité by bylo adaptovat jej pro VB, takže by sis to musel zjistit. Teď už ale znáš pojem Mutex, takže googlit nebude problém :)

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
17.3.2019 20:37
Programátor je stroj k převodu kávy na kód.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.