2010-06-11 17 views
6

Zauważyłem kilka razy, niż podczas drukowania ekranu podczas działania Media Player, zawartość jest zastępowana szarym prostokątem. Nie mam pojęcia, czy jest to celowe z powodu DRM, czy z jakiegoś problemu technicznego, ale uderzyło mnie, że umiejętne blokowanie przechwytywania ekranu może być przydatną funkcją w niektórych scenariuszach. Nie szukam rozwiązania problemu, ale zreplikuj go!Jak zapobiec przechwyceniu pojedynczego okna przez Print-Screen?

Czy jest jakiś szczególny komunikat, który każdy HWND otrzymuje na ekranie drukowania - czy system Windows robi specjalne odświeżanie lub po prostu zrzuca bufory do schowka?

Myślę, że wolałbym skupić się na Win32, ale tak długo, jak jest to związane z systemem Windows, to dobrze.

+3

Mogę się mylić, ale domyślam się, że na ekranie drukowania przechwytywane jest zdjęcie z bufora, które jest używane do łączenia okien, podczas gdy wideo jest nakładane później, może na karta wideo. http://en.wikipedia.org/wiki/Hardware_overlay – gingerbreadboy

+0

Niektóre gry wideo i odtwarzacze multimedialne mają wbudowaną funkcję "zrzutu ekranu", ale większość z nich nie. Faktem jest, że odtwarzacze multimedialne i gry mają tendencję do korzystania z DirectX, który przydziela bufor wideo do użycia. Można użyć Fraps lub innego narzędzia do przechwytywania ekranu, aby przechwytywać tego typu obrazy. – Daniel

Odpowiedz

3

Możesz zarejestrować skrót, używając this method. Zarejestruj klucz PrtScr, a twoja aplikacja otrzyma wiadomość w twoim WndProc, WM_HOTKEY. Po otrzymaniu tego możesz coś zrobić w formularzu, aby wyłączyć wyświetlanie lub coś innego.

Ta metoda skrótu powinna działać, nawet jeśli formularz jest zminimalizowany.

+0

Zasadniczo przez krótki okres czasu robię coś takiego, jak narysować duże pole na górze mojego okna dialogowego, a następnie je usunąć. Ciekawy. Czy to jest udowodnione, czy idea, która powinna ... działać? –

+0

Cóż, dobra uwaga :) Funkcja "Hotkey" jest sprawdzona, ale blokuje dialog, to jest do eksperymentowania. –

+3

@John, zarejestrowanie klawisza skrótu dla VK_SNAPSHOT spowoduje całkowite wyłączenie drukowania. Z góry dziękuję za to, że nie zakłóciłem funkcjonalności mojego systemu operacyjnego. – avakar

2

Musisz wyłączyć "Użyj nakładek", aby móc zrobić zrzut ekranu.

Otwórz program Windows Media Player. Wybierz "Narzędzia" -> "Opcje ..." z menu. Kliknij zakładkę "Wydajność". Kliknij przycisk "Zaawansowane ...". Odznacz pole wyboru "Użyj nakładek" w grupie "Przyspieszenie wideo". Kliknij przycisk "OK". Kliknij przycisk "OK"

+0

Całkowicie poza tematem, ale dzięki! Więc to nie jest funkcja po projekcie? –

+1

Nakładka nie jest przechwytywana na zrzucie ekranu, ponieważ po naciśnięciu przycisku drukowania przechwytywany jest tylko pulpit. Nakładka wideo to funkcja sprzętowa karty wideo. Wyobrażam sobie, że jest on renderowany bezpośrednio do bufora wideo, więc Windows nie wie, co się tam dzieje. Ale na przykład w Win7 zobaczysz zawartość twojego odtwarzacza multimedialnego nawet z włączoną nakładką, ponieważ wszystko jest przyspieszane sprzętowo z włączoną obsługą Aero, a funkcja drukowania pokazuje zawartość bufora wideo. – humbagumba

Powiązane problemy