Clipboard

Niektóre z programów dostarczanych w środowisku Windows są tak proste, że nie zauważamy ich istnienia i - co gorsze - nie wykorzystujemy w pełni ich możliwości. Należy do nich Clipboard. Korzystamy z niego bardzo często: każde kopiowanie nawet najmniejszego kawałka tekstu lub wycinka obrazu graficznego odbywa się za pośrednictwem Clipboard-u, zwanego czasem buforem pośredniczącym.

Niektóre z programów dostarczanych w środowisku Windows są tak proste, że nie zauważamy ich istnienia i - co gorsze - nie wykorzystujemy w pełni ich możliwości. Należy do nich Clipboard. Korzystamy z niego bardzo często: każde kopiowanie nawet najmniejszego kawałka tekstu lub wycinka obrazu graficznego odbywa się za pośrednictwem Clipboard-u, zwanego czasem buforem pośredniczącym.

Najpierw sprostowanie: Clipboard Viewer, widoczny w postaci ikony na ekranie Windows, nie jest programem, który służy do wycinania części tekstu, obrazu itd. Tym zajmuje się samo środowisko Windows (czyli właśnie Clipboard, ukryty głęboko w środowisku). Clipboard Viewer służy jedynie do oglądania na ekranie zawartości tej części pamięci, w której znajduje się skopiowany element.

Po skopiowaniu dużego obiektu do bufora pośredniczącego musimy prawie natychmiast coś z nim zrobić, przenosząc go do innej aplikacji lub zapisując w postaci pliku dyskowego. Każda inna operacja kasuje całą poprzednią zawartość bufora. Pozostawienie dużego obiektu w buforze, może stać się bowiem przyczyną kłopotów.

Kłopoty te ilustruje następujący przykład: naciskając klawisz PrintScreen kopiujemy zawartość ekranu do bufora (naciskając Alt-PrintScreen kopiujemy do bufora wybrane okno). Jeśli korzystamy z karty SVGA 800x600, 16 kolorów, to zapamiętujemy w buforze obraz o rozmiarze około 235 kB; dla karty 1024x768, 256 kolorów będzie to 768 kB! Może się więc okazać, że nie będziemy w stanie uruchomić innej aplikacji, do której chcemy przenieść ten obiekt, z powodu braku wolnej pamięci! Należy więc co prędzej oczyścić zawartość bufora przez wywołanie opcji Del z menu Edit (p. rys. 1).

W razie potrzeby skorzystania z zawartości bufora w późniejszym terminie, należy zapamiętać obiekt w pliku dyskowym o specjalnym formacie, używanym tylko przez Clipboard Viewer (p. rys. 2). Opcja Open z menu File służy do odtwarzania zawartości bufora pośredniczącego, poprzez odczytanie pliku dyskowego do bufora. Jeżeli bufor nie był pusty, Clipboard pyta czy chcemy usunąć poprzednią jego zawartość (rys. 3).

Oglądamy zawartość Clipboard-u

Clipboard Viewer ma bardzo ograniczone własne możliwości odtwarzania obrazu na ekranie. Dla pokazania bardziej złożonych obiektów musi korzystać z pomocy aplikacji, z której obiekt pochodzi. I tak po skopiowaniu do bufora kawałka tekstu pochodzącego z Word for Windows, ten ostatni program określa sam formaty, które jest w stanie odtwarzać na ekranie. Na kolejnym rysunku (rys. 4) pokazujemy jakie formaty tekstu są dostępne i które z nich Clipboard Viewer potrafi pokazać na ekranie (to te pokazane tekstem pogrubionym). Inne, mimo że mogą być odtwarzane przez Word, nie są widoczne, ponieważ Clipboard Viewer nie może ich odtworzyć na ekranie. Te formaty są uwidocznione bladym tekstem w opcji Display Clipboard Viewer-a. Różnorodność tych formatów pokazuje następny obrazek z ekranu, na którym wybrałem opcję Picture z menu Display dla tego samego tekstu pochodzącego z Worda (rys. 5).

Program Excel kopiuje do Clipboard-u jeszcze większą liczbę formatów danych (rys. 6). Są to wszystkie formaty, którymi posługuje się Excel oraz niektóre z formatów innych aplikacji Windows.

Wśród dostępnych formatów jest na przykład Link i Object/Link, służące do korzystania z możliwości łączenia i upakowania obiektów (OLE), dostępnych w wersji 3.1 Windows.

Korzystamy z Clipboard-u

Różnorodność kopiowanych formatów umożliwia przenoszenie obiektów między różnymi aplikacjami Windows. Na przykład możemy kopiować część tekstu z programu Word do programu Notepad, mimo że ten ostatni ma znacznie mniejsze możliwości niż Word. Natomiast tekst napisany w Wordzie, wklejony bezpośrednio do programu Write pojawi się w nim jako obraz. Dopiero operacja Paste Special pozwoli na wklejenie go jako tekstu.

Pojawia się pytanie, w jaki sposób tak prosta aplikacja jak Clipboard Viewer, niemal zupełnie pozbawiona własnych możliwości operowania na obiektach, jest w stanie odtworzyć w innej aplikacji obraz lub tekst?

Faktycznie operacja odtwarzania dokonywana jest przez aplikację macierzystą, tzn. Word. Jeśli bowiem - po skopiowaniu części tekstu do bufora - zamkniemy Word for Windows, to z Clipboard-u będziemy mogli skopiować już znacznie mniejszą liczbę formatów. Tak samo zmniejszy się liczba dostępnych formatów w opcji Display.

Bogate w możliwości formatowania aplikacje Windowsowe kopiują do bufora pośredniczącego tylko niektóre z dostępnych im formatów. Pozostałe formaty są jedynie zarejestrowane. Te formaty odtworzy na żądanie macierzysta aplikacja. Jeśli jakiejś aplikacji potrzebny jest jeden z licznych zarejestrowanych (ale nie kopiowanych do bufora) formatów Worda lub Excela, wówczas środowisko Windows żąda od tej aplikacji odtworzenia dostępnego i specyficznego dla niej formatu. Jeśli jednak zamkniemy aplikację, stanie się to oczywiście niemożliwe i liczba dostępnych formatów jest ograniczona.

Clipboard Viewer żąda od aplikacji aby, przed zamknięciem, odtworzyła formaty obiektu aktualnie znajdującego się w buforze. Dobrze napisane aplikacje przed wyłączeniem odtwarzają w buforze wszystkie dostępne w nich formaty. Jeśli jednak obiekt w buforze jest duży, wówczas odtworzenie wszystkich dostępnych formatów (na przykład przez Excel) spowoduje, że wytworzony zostanie obiekt o pojemności kilka lub kilkanaście MB. Excel zapyta czy zapamiętać duży bufor z odtworzonymi formatami (rys. 7). Naciśnięcie przycisku No spowoduje wymazanie zawartości bufora.

Clipboard i DOS

Wywołanie programu DOS-owego ze środowiska Windows na pełny ekran tylko pozornie uniemożliwia korzystanie z Windows i narzędzi Windows. Normalnie w czystym DOS-ie naciśnięcie klawisza PrintScreen (lub Shift-PrintScreen) powoduje drukowanie zawartości ekranu tekstowego na drukarce. (Drukowanie ekranu graficznego możliwe jest po uprzednim załadowaniu programu rezydentnego GRAPHICS.)

Nic podobnego nie dzieje się, gdy pracujemy w DOS-ie wywołanym spod Windows. Faktycznie, następuje wtedy skopiowanie obrazu ekranu do bufora. Możemy więc skorzystać ze wszystkich możliwości Windows do drukowania obrazu ekranu (zarówno tekstowego jak graficznego) lub zapamiętania go w postaci pliku dyskowego.

Nie ma jednak możliwości kopiowania między programami DOS- owymi, pracującymi na pełnym ekranie przez wykorzystanie bufora. Jest to możliwe dopiero wtedy, gdy uruchomimy te programy w mniejszym okienku.

Programy DOS-owe pracujące okienkowo mają bowiem inny charakter. Okazuje się na przykład, że możliwe jest korzystanie z myszy dla oznaczenia tekstu, skopiowania go do bufora i wklejenie w innym miejscu tego samego programu lub do innego programu. I na dodatek możliwości takie uzyskują programy, które nie korzystają z myszy!

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200