Zjištění běhu aplikace   otázka

C#

Chtěl bych se zeptat jak zjistím aplikaci, kterou spouštím, zda běží nebo neběží?

Zde je kód spouštění aplikace:

         samp_server.StartInfo.FileName = Moje_Dokumenty_Server + "/samp-server.exe";
            samp_server.StartInfo.WorkingDirectory = Convert.ToString(Moje_Dokumenty_Server);
            samp_server.StartInfo.CreateNoWindow = false;
            samp_server.Start();

A za 2) bych se chtěl zeptat že když zavřu otevřenou aplikaci co jsem pustil, aby mě to upozornilo že aplikace byla zavřena.

Předem díky, už se stím lámu celej den hlavu :(

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Lze to řešit více způsoby, jako ostatně většina věcí v programování, jedním z možných řešení je dát si do aplikace timer, který bude třeba každé 2 vteřiny kontrolovat běh aplikace, no a jak to zjistit? Do kódu metody pro timer si dáte zjišťovací kód, nebudu vám ho tu vypisovat, jen vám poskytnu vodítko:

foreach(System.IO.Process p in System.IO.Process.GetProcesses())
{
   //kontrola názvů, pokud se schodují, aplikace běží, pokud ne, neběží, to už si zkuste dodělat sám :-)
}

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Cheli ste napísať System.Diagnostics.Process.GetProcesses() .

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano, samozřejmě, omlouvám se.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Děkuji, problém byl vyřešen :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To není úplně ideální řešení - když si někdo pustí tu aplikaci vícekrát, tak to nezabere. A co třeba když tu aplikaci někdo shodí a do 2 sekund ji stihne pustit?

Proces má přitom metodu WaitForExit nebo jak se jmenuje, takže pokud si proces vytvoříte sami, můžete na něm i zavolat Wait, takže hned zjistíte, kdy skončil.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak samozřejmě, ale šlo o jednoduchost, ne o nejlepší řešení, nebo ještě lépe, šlo o jednu z možností, samozřejmě, že jsou i lepší možnosti, ty jsou téměř vždy...

Nicméně základní účel to splní, takže pokud by autor nebyl s něčím spokojen, tak si to může udělat podle svého, jen jsem ho chtěl nakopnout...

A díky, o metodě WaitForExit() jsem nevěděl.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V pořádku, jen na takováto řešení pozor - ono to sice v 99% případů bude fungovat správně, ale vždy je lepší se podívat, jestli neexistuje nějaké spolehlivé řešení.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback