Diskuze: Vypínání počítače
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Já bych to zkusil pomocí souboru. Vždy když by se zapnula nová instance zapsal bych jí do toho souboru jako že je aktivní, a když by se ukončila, soubor by přepsala. No a když by nějaká instance chtěla vypnout počítač, zkontrolovala by pomocí toho souboru, jestli jsou všechny instance ukončené.
Podívej se na metodu Process.GetProcesses(). Pokud program bude chtít vypnout počítač, vytáhne se seznam všech aktivních procesů. Pokud tam najde proces jiné instance aplikace, tak jenom ukončí sama sebe a nic neudělá. A tak to pude dál a dál, dokud se nebude chtít ukončit poslední program. Opět vytáhne seznam procesů, ale zjistí, že tam už je jenom jeden, což je on sám, a tak vypne počítač.
GetProcesses jsem dříve používal pro detekci duplicitních procesů, ale
z nějakého důvodu to nefungovalo příliš spolehlivě. Ale pro tento
problém by se asi dalo přimhouřit oko..
Ještě zbývá předat nějak zprávu o změně stavu checkboxu "po dokončení
vypnout pc" ostatním instancím, řešit to zápisem do nějakého souboru se
mě moc nelíbí a do zasílání zpráv se mi taky moc nechce... Nechci aby se
aplikace zdržovala úkoly navíc.
Nemáte ještě nějaký nápad ?
Zobrazeno 7 zpráv z 7.