Alt+Tab a aplikace na pozadi   zodpovězená otázka

VB.NET, WinForms

Zdravim,

potreboval bych poradit, jak docilit toho, aby aplikace nereagovala - kdyz je minimalizovana v hlavnim panelu - na kl. zkratku Alt+Tab, nebo jeste lip aby ji windows nedetekoval jako spustenou aplikaci s oknem a nezobrazoval ji v nabidce Alt+Tab

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

Nastavte při minimalizaci vlastnost ShowInTaskBar na False.

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

tak to mam, ale nefunguje to, resp. skryje jenom tlacitko okna...

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

Mohlo by jít o zákaz klávesové zkratky. O nich se pojednává v http://vbnet.cz/forum-tema--749-zakazani...

Jinak by šlo nějak ošetřit událost formuláře, třeba návratem k minimalizaci. Asi se tak nevyhnete mžikovému zobrazení okna:

 Private Sub Form1_Paint(ByVal sender As Object, _
   ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
     Me.WindowState = FormWindowState.Minimized
 End Sub

Nevím, co potřebujete, nabízím jen amatérský pokus, snad existuje lepší způsob.

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

uz jsem to vyresil, neni to sice asi koser ale funguje to...

'pri minimalizaci nastavuju FormBorderStyle fromulare na:
Me.FormBorderStyle=Windows.Forms.FormBorderStyle.FixedToolWindow
'pri zpetnym vyvolani vracim FormBorderStyle na puvodni hodnotu

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

Prozraďte, prosím, víc. Omezení uživatele v zacházení s aplikací mě zajímá, ale tohle jsem nepochopil - cíl ani řešení.

Děkuji

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

dobre... podivejte se na aplikace, ktere Vam bezi na pozadi (antivir, firewall,...). Pokud mate otevrenych vic oken, muzete mezi nimi prepinat klavesovou zkratkou Alt+Tab, ale co se tyka aplicaci bezicich na pozadi, pokud nemaji otevrene okno zkratkou Alt+Tab se na ne nedostanete. To byl prave muj problem, vzhledem k tomu, ze pouzivam tuhle kl. zkratku casto, porad jsem omylem vyvolaval okno moji aplikace, ktera bezela minimalizovana na pozadi.

Vyzkousejte sam. Vytvorte novy projekt a do udalosti Resize vaseho formulare umistete

Me.ShowInTaskBar = False

...a okno minimalizujte, kdyz ted budete projizdet otevrena okna pomoci zk. Alt+Tab Vase okno tam bude i kdyz ho nevidite

Ale kdyz umistite do Resize jeste

Me.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedToolWindow

ted to vyzkousejte znovu a ejhle, Vas program uz tam neni...

Funkcne to nema na celou aplikaci vliv, ale pokud se vsechny aplikace chovaji nejak, proc by se ta moje mela chovat jinak?

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

Díky za vysvětlení, funguje to. Mně se objevovalo tlačítko aplikace vlevo dole nad hlavním panelem, neviděl jsem tedy sledovaný efekt. Problém byl v tom, že jsem měl nastavené Me.ShowInTaskbar = False před Resize.

Jak ošetřujete návrat do normálního stavu?

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

ted nevim presne, co myslite navratem do normalniho stavu.

tohle snad bude ono...

skryti formulare

    Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
        If Me.WindowState = FormWindowState.Minimized Then
            Me.ShowInTaskbar = False
            Me.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedToolWindow
        End If
    End Sub

ovladani pres tray ikonu

    Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick
        Select Case Me.WindowState
            Case FormWindowState.Minimized
                Me.ShowInTaskbar = True
                Me.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedSingle
                Me.WindowState = FormWindowState.Normal
            Case FormWindowState.Normal
                Me.ShowInTaskbar = False
                Me.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedToolWindow
                Me.WindowState = FormWindowState.Minimized
        End Select
    End Sub

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

Myslel jsem tu druhou poznámku v:

'pri minimalizaci nastavuju FormBorderStyle fromulare na:
Me.FormBorderStyle=Windows.Forms.FormBorderStyle.FixedToolWindow
'pri zpetnym vyvolani vracim FormBorderStyle na puvodni hodnotu

tedy návrat do "normálního stavu", kdy aplikace není skrytá. Děkuji za úplnou odpověď, ukázka je bezvadná! Myslím, že se hodí do snippetů - provádí "Skrýt při minimalizaci" obdobně jako Správce úloh ve Windows XP.

nahlásit spamnahlásit spam 0 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