Diskuze: Klávesová zkratka alt+f4

C# .NET .NET (C# a Visual Basic) Klávesová zkratka alt+f4 American English version English version

Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Daniel Vítek:

Mám prográmek,a potřeboval bych tuto zkratku nějak vypnout,aby mi ten program nemohla zavřít...
Neví někdo jak na to ?
A ano, googlil jsem :D

 
Odpovědět 28.9.2012 8:48
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:

Znaky z klávesnice vstupují do procesu přes správce oken. Pokud někdo stiskne Alt-F4, správce oken to zachytí, ale procesu to nepředá. Místo toho procesu pošle signál k ukončení.

Tento signál můžeš zkusit zachytit a provést přímo akci, kterou jsi chtěl udělat přes Alt-F4.

Správce oken asi předělávat nebudeš.

Nahoru Odpovědět 28.9.2012 8:55
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:

Jak to zkusit zachytit ?

 
Nahoru Odpovědět 28.9.2012 8:58
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:

Napadlo mě to udělat nějak takhle

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            switch(KeyPress)
            {
                case Keys.Alt+Keys.F4:
                    MessageBox.Show("Mě neukončíš :P");
                    break;
            }
        }

Nejspíš to bude blbost a navíc to stejně nejede

Error   1       The event 'System.Windows.Forms.Control.KeyPress' can only appear on the left hand side of += or -=
 
Nahoru Odpovědět 28.9.2012 9:04
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:

Nevím, jak to funguje ve Windows a v C#, ale zkus hledat slovo 'trap'.

Nahoru Odpovědět 28.9.2012 9:06
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:

Správně. Signály se zachytávají do pastí.

Nahoru Odpovědět 28.9.2012 9:10
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:

Nevíš,jestli se dá udělat aby ten program nepřekryla nabídka Start ?
TopMost mám zapnutý ale Start to překryje

 
Nahoru Odpovědět 28.9.2012 9:12
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:

Tak to už nevím vůbec. To bude něco silně specifického pro Windows.

Nahoru Odpovědět 28.9.2012 9:17
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:

Aha...:/
No ale stejně díky :)

 
Nahoru Odpovědět 28.9.2012 9:18
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:

A jak počítač přepnout do režimu spánku pomocí command line nebo C# ? :D

Vypnout vím ( shutdown -s a v C# http://www.itnetwork.cz/…i-pc-navyare )

ale ten spánek ne :(

 
Nahoru Odpovědět 28.9.2012 9:21
Avatar
Petr
Redaktor
Avatar
Petr:

V C# stačí reagovat na událost FormClosing u hlavního formuláře.

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    e.Cancel = true;
}
 
Nahoru Odpovědět  +1 28.9.2012 9:22
Avatar
matesax
Redaktor
Avatar
Odpovídá na Petr
matesax:

A můžeš přidat minimalizaci/skry­tí:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    e.Cancel = true;
    Hide();/WindowState = FormWindowState.Minimized;
}
Editováno 28.9.2012 9:27
 
Nahoru Odpovědět 28.9.2012 9:27
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Petr
Daniel Vítek:

To už jsem vyřešil :)

Teď by mě zajímal ten spánek...

 
Nahoru Odpovědět 28.9.2012 9:29
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Daniel Vítek
Daniel Vítek:

Aha teď koukám u toho Navyare do komentářů :D

Application.SetSuspendState(PowerState.Hibernate, true, true);

Takže moment,jdu to testovat :D

 
Nahoru Odpovědět 28.9.2012 9:31
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Avatar
matesax
Redaktor
Avatar
Odpovídá na Daniel Vítek
matesax:

Nemáš zač... (Můj program.) :)

 
Nahoru Odpovědět 28.9.2012 9:40
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na matesax
Daniel Vítek:

jj všiml jsem si...dík :D

...sczdavosuv koment :D :D

 
Nahoru Odpovědět 28.9.2012 9:43
Avatar
00
Člen
Avatar
Odpovídá na Daniel Vítek
00:

jak je to vypnutí? v tom zdrojáku jsem to nemohl najít

 
Nahoru Odpovědět 28.12.2012 16:39
Avatar
matesax
Redaktor
Avatar
matesax:

V eventu FormClosing dáš:

e.Cancel = true;

Nemáš-li Form aplikaci, tak to bude něco podobného...

 
Nahoru Odpovědět 28.12.2012 16:59
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 21 zpráv z 21.