Jak mogę drukować zminimalizowane okna? Uważam, że jest to możliwe, ponieważ pasek zadań systemu Windows może utworzyć podgląd okna, nawet jeśli jest on zminimalizowany.Jak mogę drukować zminimalizowane okna?
Odpowiedz
Jestem przekonany, że nie jest to możliwe, przynajmniej przez zewnętrzną aplikację, taką jak Twoja. Gdy okno aplikacji jest zminimalizowane, okno nie może (i nie otrzymuje) komunikatów WM_PAINT, co oznacza, że niemożliwe jest zażądanie od okna, aby przerysowało się, gdy jest zminimalizowane (lub "zrób zdjęcie"). Jest to ograniczenie (lub reguła) interfejsu API systemu Windows.
Pasek zadań „omija ten” wyświetlając pamięci podręcznej obraz (który jest ostatni snapshot DWM wziął okna zanim została zminimalizowana), a więc jest nie w rzeczywistości biorąc aktualny obraz okna. Możesz to przetestować, uruchamiając aplikację, która okresowo aktualizuje się, a następnie minimalizując ją - zobaczysz, że obraz podglądu nie zostanie zaktualizowany, dopóki nie zostanie przywrócony.
Jedynym sposobem obejścia tego problemu jest zrobienie tego, co robi pasek zadań - okresowe wykonywanie zdjęcia wybranego okna, a gdy jest zminimalizowane, należy użyć obrazu z pamięci podręcznej. Oczywiście oznacza to, że twoja aplikacja musiała podążać za oknem docelowym z pewnym wyprzedzeniem (to oczywiście nie zadziała, jeśli po raz pierwszy chcesz zrobić migawkę okna, gdy jest zminimalizowane).
Zobacz http://msdn.microsoft.com/en-us/library/aa969541%28VS.85%29.aspx, aby użyć funkcji DWM używanych przez pasek zadań . –
Ładne znalezisko, nie miałem pojęcia, że API istnieje (choć byłoby to przydatne tylko w systemie Vista lub nowszym) – GRB
Co się stanie, jeśli funkcja Windows Aero jest wyłączona? –
Facetowi udało się zrobić dokładnie to, o co prosisz: http://www.codeproject.com/Articles/20651/Capturing-Minimized-Window-A-Kid-s-Trick Wiem, że to pytanie jest naprawdę stare, ale nadal może być ważne dla kogoś.
- 1. Wykrywanie okna przeglądarki Zmaksymalizowane/zminimalizowane za pomocą Javascriptu
- 2. Jak drukować bezpośrednio, bez okna dialogowego drukowania w WPF?
- 3. Jak mogę drukować, gdy używam% dopar%
- 4. Umieść zminimalizowane pliki w słoju
- 5. Java - Pokaż zminimalizowane okno JFrame
- 6. Jak drukować wstring w gdb
- 7. Jak drukować czas jako #inst
- 8. Jak mogę uchwycić rozmycie i ostrość całego okna przeglądarki?
- 9. Jak drukować w aplikacji UWP?
- 10. jak automatycznie drukować pliki tiff
- 11. Jak drukować dataframe bez indeksu
- 12. Jak drukować zmienną wewnątrz awk
- 13. Jak drukować/echo zmiennych środowiskowych?
- 14. Jak drukować z F # jak REPL ma
- 15. Jak mogę zatrzymać okna dialogowe otwierania gvim?
- 16. Jak mogę kontrolować rozmiar okna otwartego Chromedriver?
- 17. Jak podnieść okno, które jest zminimalizowane lub pokryte PyGObject?
- 18. Jak drukować w Windows Uniwersalny projekt C++
- 19. Jak drukować w kolorze z notebookiem Jupyter
- 20. Jak drukować adres funkcji członka w C++
- 21. Jak drukować strukturę C rekurencyjnie w gdb
- 22. Ruby - Jak zachować \ n kiedy drukować ciągi
- 23. Dlaczego zamknięcie ostatniego okna podrzędnego powoduje zminimalizowanie okna nadrzędnego?
- 24. WEKA - Jak drukować nieprawidłowo drobne przypadki
- 25. Jak drukować zbiórki zapytanie mysql w Magento
- 26. Jak drukować SQL w CodeIgniter modelu
- 27. .NET: Jak drukować pliki bez ich otwierania
- 28. Jak drukować określone wiersze w GNUplot
- 29. Jak drukować tablice Fortran w GDB?
- 30. Jak drukować za pomocą instrukcji inline if?
Menedżer Vista Desktop udaje się to zrobić, więc nie rozumiem, dlaczego nie. Poziom niskiego poziomu, który musisz przejść, to kolejne pytanie ... – Noldorin