Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Solved] Jak wyłączyć automatyczne minimalizowanie okien?

wojtas_73 30 Dec 2018 19:16 3597 4
  • #1
    wojtas_73
    Level 8  
    Witam szanowne grono. Mam takie pytanie. Jak zablokować automatyczne minimalizowanie okien? Podam o co mi chodzi na konkretnym przypadku. Pracuję na programie fakturującym, ale też w tym czasie korzystam z Excela, którego okno jest pomniejszone, nałożone na program fakturujący, w momencie kliknięcia w faktury, Excel się minimalizuje, a tego nie chcę, chcę aby był cały czas na wierzchu, chyba że sam go zminimalizuję.
  • Helpful post
    #3
    devPie
    Level 10  
    enhanced wrote:
    A jaki windows? Bo to nie jest normalne - normalnie zostaje w tle.

    Jeśli okno z excelem znajduje się nad oknem programu fakturującego to normalnym jest to, że po przejściu do okna z programem fakturującym Excel schowa się pod spodem. Wydaje mi się, że autor po prostu pomylił minimalizowanie z zasadą "zawsze na wierzchu".

    @wojtas_73 - spróbuj do pliku w Excelu wrzucić poniższe makro i uruchom z niego funkcję SetXLOnTop gdy chcesz żeby okno Excela było zawsze na górze lub SetXLNormal jesli ma działać w normalnym trybie - u mnie, na Excel 2010 działa bez zarzutu.

    Code:

    #If Win64 Then
        Public Declare PtrSafe Function SetWindowPos _
            Lib "user32" ( _
                ByVal hwnd As LongPtr, _
                ByVal hwndInsertAfter As LongPtr, _
                ByVal x As Long, ByVal y As Long, _
                ByVal cx As Long, ByVal cy As Long, _
                ByVal wFlags As Long) _
        As Long
    #Else
        Public Declare Function SetWindowPos _
            Lib "user32" ( _
                ByVal hwnd As Long, _
                ByVal hwndInsertAfter As Long, _
                ByVal x As Long, ByVal y As Long, _
                ByVal cx As Long, ByVal cy As Long, _
                ByVal wFlags As Long) _
        As Long
    #End If
    Public Const SWP_NOSIZE = &H1
    Public Const SWP_NOMOVE = &H2
    Public Const HWND_TOPMOST = -1
    Public Const HWND_NOTOPMOST = -2
    Sub ShowXLOnTop(ByVal OnTop As Boolean)
        Dim xStype As Long
        #If Win64 Then
            Dim xHwnd As LongPtr
        #Else
            Dim xHwnd As Long
        #End If
        If OnTop Then
            xStype = HWND_TOPMOST
        Else
            xStype = HWND_NOTOPMOST
        End If
        Call SetWindowPos(Application.hwnd, xStype, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE)
    End Sub
    Sub SetXLOnTop()
        ShowXLOnTop True
    End Sub
    Sub SetXLNormal()
        ShowXLOnTop False
    End Sub
  • Helpful post
    #4
    Ramiro Roberto
    Level 14  
    Minimalizacja oznacza zrzucenie okna programu na pasek zadań (pasek na dole ekranu) wtedy okno znika z ekranu. Przy zmianie okna programy same się nie minimalizują lecz nieaktywne okna przesuwają do tyłu, czyli pozostają w tle.
    Gdy aktywujesz okno programu fakturującego, okno programu Exel nie zostaje zminimalizowane, lecz zostaje przesłonięte przez okno programu fakturującego, Jeśli chcesz utrzymać okno programu zawsze na wierzchu zrób to co poradził devPie. Tutaj masz dokładniejszy opis Jak utrzymać okno programu Excel zawsze na wierzchu?.
    Możesz też skorzystać z programu Window On Top - przeciągasz okno Excel'a na symbol z rączką i gotowe, okno pozostanie zawsze na wierzchu, aż do zamknięcia programu.
  • #5
    wojtas_73
    Level 8  
    Dziękuję. O to mi chodziło.