none
Program, vytvořený ve Visual Basicu 1.00, zanechává ve Windows XP na obrazovce control-menu box, který drží i TAB

    Dotaz

  • Vytvořil jsem program ve Visual Basicu 1.00, který ve Windows XP normálně skončí poté, co všechny procesy doběhnou a uzavře se poslední okno. Jenomže jsem zjistil, že mi někam zmizelo ze spodní lišty Windows TAB. Když TAB nikam nepřepnu mohu vyvolat stiskem levého Alt a Space "control-menu box". Tento "control-menu box" obsahuje ovládání objektu z klávesnice - možnost jeho obnovení, přesnů, změn velikosti, maximalizování, minimalizování a uzavření. Tento "control-menu box" drží právě to zmizelé TAB pro celé Windows a já ho musím vyvolat a jakoby uzavřít okno, které již ale neexistuje. Zároveň neexistuje žádná aplikace, kterou by vnímal "windows task manager". Ovládání Windows myší není nijak narušeno. Mám tento problém nahlásit?

    DOPLNĚNÍ: Aby spodní lišta zobrazila "control-menu box", musí se Alt podržet současně se Space... Děkuji za Váš zájem.

    sobota 5. března 2011 13:31

Odpovědi

Všechny reakce

  • Ahoj,

    odkázal bych tě na vývojářská fóra společnosti Microsoft. Tam ti dokážou lépe poradit...

    http://social.msdn.microsoft.com/Forums/cs-CZ/categories

    neděle 6. března 2011 9:05
  • Taktéž doporučuji dotázat se spíše programátorů, jistě v tom budou kovanější.

    Opravdu se ukončí správně všechny vlákna/okna, zničí všechny inicializované objekty (nastaví na nic) a unloadnou všechny formuláře? Zároveň doporučuji zkontrolovat posloupnost inicializace dat do vláken, například Form1.X = Form2.Y poté, co již Form2 neexistuje. Spíše než správcem úloh (aplikací) bych se také podíval přímo do běžících procesů.

    Option Explicit
    
    Private Sub Command1_Click()
     Dim frm As Form
     Dim obj As Object
     For Each frm In Forms
     If frm.Name <> Me.Name Then ' Unload this form LAST
     For Each obj In frm
      On Error Resume Next
      Unload obj
      Set obj = Nothing
     Next
     Unload frm
     Set frm = Nothing
     End If
     Next
     On Error Resume Next
     For Each obj In frm
     Unload obj
     Set obj = Nothing
     Next
     Set frm = Nothing
     Unload Me
    End Sub 
    

    Via http://www.bigresource.com/.

    pondělí 7. března 2011 0:57
    Vlastník
  • Děkuji za Vaši pomoc. Nahrál jsem do Windows Xp ladicí prostředí Visual Basicu 1.00 a žádné nesrovnalosti se neobjevily. Už se tím netrapte. Je to nepochybně nějaká systémová chyba, protože když v tom control-menu boxu zvolím možnost Přesunout, mohu tím neviditelným oknem dokonce pochybovat (pomocí šipek na klávesnici - čili pohybuje se pouze kurozr myši). Měl bych to asi nahlásit...
    pondělí 7. března 2011 9:57