Буфер обмена обмен информацией между различными приложениями windows

Во время работы на компьютере мы часто копируем и вставляем текст, изображения или файлы. Но куда они сохраняются, пока мы не используем их? Разумеется, в специальном месте, где они временно «находятся», пока не будут вставлены в нужное место или удалены. Это место называется нечто удивительное – буфер обмена.

Буфер обмена в операционной системе Windows представляет собой невидимое хранилище, которое автоматически сохраняет все скопированные данные, чтобы вы могли использовать их позже. Как правило, пользователь не замечает существование буфера обмена, но он активно работает, обрабатывая данные и очищая их после использования.

Очистка буфера обмена происходит автоматически при выключении компьютера или при копировании новых данных, что предотвращает перегрузку памяти компьютера. Этот процесс обеспечивает плавную и эффективную работу операционной системы, что делает использование буфера обмена незаметным и удобным для пользователей Windows.

Роль буфера обмена в операционных системах

В операционных системах, таких как Windows, буфер обмена находится на постоянном контроле пользователя, позволяя ему копировать данные, сохранять их в буфере и вставлять в другие приложения. Это удобно, так как позволяет с легкостью перемещаться между разными программами и обмениваться информацией без необходимости сохранять данные на жестком диске.

Очищать буфер обмена также очень важно, чтобы избежать конфликтов или утечки данных. Это позволяет сохранить конфиденциальность информации и избежать случайного вставления устаревших данных в приложения.

Принцип работы буфера обмена

Когда речь идет о передаче данных между различными приложениями в операционной системе Windows, одной из ключевых ролей играет специальная область памяти, где временно хранятся скопированные данные. Этот резервуар информации может быть заполнен различными данными, которые пользователь переносит между приложениями, и важно понимать, как он работает.

Буфер обмена в Windows – это тип хранилища, в котором данные могут быть временно размещены перед тем, как они будут вставлены в другое место. Он позволяет копировать информацию из одного приложения и вставлять ее в другое без необходимости повторного ввода. Буфер обмена находится в оперативной памяти компьютера и может содержать текст, изображения или другие данные.

Очищать Для предотвращения переполнения буфера обмена, важно периодически очищать его, удаляя ненужные данные. Это поможет освободить место для новых элементов и поддерживать его эффективную работу.
Находиться Буфер обмена находится в постоянном использовании при работе с различными приложениями на компьютере. Он облегчает обмен информацией между программами и помогает повысить производительность пользователя.

Основные функции буфера обменной системы

  • Хранение данных: буфер обмена позволяет временно сохранять скопированные текстовые, графические или другие типы данных.
  • Передача данных: благодаря буферу обмена, пользователь может легко перемещать информацию между различными программами, избегая необходимости сохранения данных на диск и последующей загрузки.
  • Обмен данными: буфер обмена облегчает обмен информацией между приложениями, позволяя пользователям быстро передавать текст, изображения, файлы и другие данные.
  • Копирование и вставка: использование буфера обмена позволяет скопировать текст или изображение из одного приложения и вставить его в другое без необходимости повторного ввода.

Применение буфера обмена в повседневной жизни

Когда вы находитесь за компьютером, вам часто приходится копировать и вставлять текст из разных источников, добавлять ссылки и переносить информацию между различными приложениями. Для этого идеально подходит буфер обмена, который позволяет временно хранить скопированные данные и обмениваться ими на разных уровнях ваших мультимедийных устройств, будь то Windows, Android или iOS.

  • Очищать буфер обмена после использования. Чтобы избежать случайного копирования старой информации, важно регулярно очищать буфер обмена. Это можно сделать с помощью специальных приложений или встроенных инструментов операционной системы.
  • Использовать буфер обмена для ускорения работы. Когда вам нужно скопировать и вставить один и тот же текст несколько раз, буфер обмена может значительно упростить процесс. Просто скопируйте текст один раз, а затем вставьте его неограниченное количество раз.
  • Находиться внутри одного приложения. Многие приложения поддерживают функцию обмена данными внутри себя. Например, текст, скопированный в буфер обмена из браузера, можно легко вставить в текстовый редактор без переключения между приложениями.

Виды запасов данных и их различия

Виды запасов данных Различия между ними
Буфер обмена Windows Обеспечивает возможность копировать и вставлять текст, изображения и другие данные в приложениях Windows.
Буфер обмена приложений Отдельные приложения могут иметь свои собственные буферы обмена, где хранятся данные, специфичные для данного приложения.
Буфер очистки Используется для временного хранения данных во время операций копирования и вставки. Очищается после завершения операции.

Преимущества и недостатки использования буфера обмена

Когда речь идет о приемуществах и недостатках использования определенных инструментов для обмена информацией между приложениями и окнами операционных систем, важно учитывать как их положительные, так и отрицательные стороны.

Преимущества:

Одним из главных преимуществ использования буфера обмена является возможность быстрого копирования и вставки информации. Этот инструмент позволяет легко перемещать текст, изображения и другие данные между различными приложениями, необходимыми для работы.

Также стоит упомянуть удобство использования буфера обмена в операционной системе Windows. Благодаря этому инструменту пользователи могут легко находить и вставлять нужные данные, сэкономив время на переписывании или повторном поиске информации.

Недостатки:

Однако, среди недостатков использования буфера обмена стоит упомянуть потенциальные проблемы с безопасностью. Копированные данные могут оказаться уязвимыми к краже информации или несанкционированному доступу, что может быть серьезным недостатком при работе с чувствительной информацией.

Также стоит помнить, что буфер обмена имеет ограниченную емкость, что может привести к потере информации при попытке скопировать слишком большой объем данных. Пользователям следует быть внимательными при использовании данного инструмента, чтобы избежать потери ценной информации.

Поддержка буфера обмена различными операционными системами

Операционные системы имеют возможность использовать буфер обмена для обмена данными между различными приложениями. Данный механизм находится в основе многих операций, таких как копирование и вставка текста, изображений и других элементов. Различные ОС могут иметь свои специфические особенности в работе с буфером обмена.

Например, Windows операционные системы обычно поддерживают буфер обмена для копирования и вставки данных между различными приложениями, такими как текстовые редакторы, браузеры и графические редакторы. Пользователь может сохранять данные в буфер обмена, затем вставлять их в другие приложения.

Важно отметить, что различные ОС могут иметь различные способы работы с буфером обмена, такие как автоматическое очищение буфера после копирования или сохранение данных в буфере до тех пор, пока пользователь не решит очистить его.

Популярные программы для работы с буфером обмена

Существует множество приложений для управления информацией, которую вы находите в ограниченном месте на вашем компьютере. Эти приложения помогают вам легко управлять контентом, копировать и вставлять его в нужные места.

Apps для Windows, такие как «Ditto», «ClipClip», «ClipX» и «Dexpot», предлагают удобные функции для работы с буфером обмена. Они позволяют находить и сохранять историю копированных текстов, изображений и файлов, а также предоставляют возможность быстро вставлять их в нужные места.

Кроме этого, эти приложения позволяют вам очищать буфер обмена от ненужной информации или защищать конфиденциальные данные, предлагая различные настройки безопасности.

Обмен информацией между приложениями

Из
возможности, предоставляемой операционной
системой Windows,
одновременно работать с несколькими
различными приложениями вытекает
потребность обмена данными между
приложениями.

Например, создав
документ в Word,
можно использовать его целиком или
частично в другом документе Word
или в электронной таблице Excel
и наоборот, создав диаграмму в Excel,
ее можно разместить в документе Word,
рисунок, созданный в Paint,
можно включить в документ Word
или в электронную таблицу Excel
и т.д. Обмен данными может быть простым,
таким, как копирование или перенос
фрагмента документа в другой документ
в рамках одного приложения через буфер
обмена, и сложным — таким, как перенос
объектов (фрагментов данных) между
различными приложениями с возможностью
редактирования на месте вставленных
данных, созданных другим приложением.

Обмен данными
между приложениями можно осуществлять
путем перетаскивания выделенных объектов
мышью между документом-источником и
документом-получателем. Если при этом
нажата клавиша Ctrl,
то происходит копирование объекта.

Иногда бывает
необходимо в текущем приложении прочитать
файл, созданный другим приложением. Для
этого используются конверторы.
При Открытии
такого файла в текущем приложении надо
в поле Тип
файла
указать
приложение, в котором был создан файл.

Приложения
Windows
могут обмениваться информацией
несколькими способами.

Буфер обмена.

Самый
простой способ обмена включает следующие
шаги: выделение объекта в документе-источнике;
выполнение команды меню приложения
Правка/Вырезать
в случае перемещения объекта из одного
места в другое или команды Правка/Копировать
в случае копирования объекта, в результате
чего объект попадает в Буфер обмена
(специальная область памяти, к которой
могут обращаться различные приложения);
переход в документ-получатель в этом
же или в другом приложении с установкой
курсора в место вставки объекта;
выполнение команды Правка/Вставить,
в результате
чего объект размещается в месте вставки
документа-получателя.

Поместить
предварительно выделенные данные в
буфер обмена можно также с помощью
команд Вырезать
или Копировать
контекстного меню, появляющегося после
правого щелчка по выделенному фрагменту
данных, а вставить из буфера обмена по
команде Вставить
контекстного меню.

Поместить
предварительно выделенные данные в
буфер обмена можно также с помощью
кнопок
Вырезать или
Копировать
Стандартной панели инструментов
соответствующего приложения, а вставить
из буфера обмена кнопкой
Вставить.

Через Буфер обмена
можно копировать содержимое экрана
монитора в нужное приложение. Для этого:
нажимается клавиша PrintScreen,
чтобы скопировать содержимое всего
экрана и поместить его в виде растрового
рисунка в Буфер обмена, или комбинация
клавиш Alt+PrintScreen,
чтобы скопировать содержимое только
активного окна; выполняется переход в
документ-получатель с установкой курсора
в место вставки; выполняется команда
Вставить.
Перед вставкой
можно отредактировать изображение
экрана с помощью графического редактора
Paint
(сделать надписи, удалить часть
изображения, вырезать нужные фрагменты
и т.д.).

Время на прочтение12 мин

Количество просмотров50K

Недавно у меня появилась возможность выполнить отладку буфера обмена в Windows, и я решил, что хорошо бы поделиться информацией, которую удалось узнать. Буфер обмена — это тот компонент Windows, который многие из нас используют десятки (сотни?) раз в день, особо не размышляя об этом. Прежде чем взяться за это дело, я даже никогда не задумывался, как всё устроено. Как выяснилось, там столько интересного, что вы даже не можете себе представить. Сначала опишу, как приложения хранят разные типы данных в буфере обмена и как извлекают их оттуда, а затем — как приложения могут «прицепиться» к буферу и отслеживать изменения в нём. В обоих случае вы увидите отладочные записи, которые показывают, как получить доступ к данным из отладчика.

Начнём с обсуждения форматов буфера обмена. Такие форматы используются для описания, какие типы данные можно поместить в буфер. Там есть некоторое количество предопределённых стандартных форматов, которые может использовать приложение, вроде битового массива, текста ANSI, текста в Юникоде и TIFF. Windows также позволяет приложению установить собственный формат. Например, текстовый процессор может зарегистрировать формат, включающий в себя текст, форматирование и картинки. Конечно, это ведёт к определённой проблеме: что произойдёт, если вы скопируете данные из текстового редактора и вставите их в «Блокнот», который не понимает всего этого форматирования и не отображает картинки?

Выход — разрешить одновременное хранение данных в буфере обмена в нескольких форматах. Когда я раньше думал о буфере обмена, то представлял, что там хранится единственный объект («мой текст» или «моя картинка»), но на самом деле мои данные хранятся в буфере в разных формах. Программа, которая берёт информацию из буфера, получает её в том формате, который она может использовать.

Как же данные появляются в буфере обмена? Очень просто, приложение сначала объявляет о праве собственности на буфер обмена через функцию OpenClipboard. После этого программа может очистить буфер обмена командой EmptyClipboard и, наконец, поместить туда свои данные командой SetClipboardData. SetClipboardData принимает два параметра. Первый — это идентификатор одного из форматов буфера обмена, которые мы упоминали выше. Второй — дескриптор сегмента в памяти, который содержит данные в этом формате. Приложение может неоднократно вызывать команду SetClipboardData для каждого из форматов, какие она хочет поместить в буфер, от лучшего к худшему (поскольку то приложение, куда будут вставляться данные, выберет первый подходящий формат из списка). Чтобы облегчить жизнь разработчику, Windows автоматически обеспечивает конвертацию некоторых типов форматов для буфера обмена. По окончании процесса программа вызывает CloseClipboard.

Когда пользователь нажимает кнопку «Вставить», целевое приложение вызывает OpenClipboard и одну из следующих функций для определения доступных форматов данных: IsClipboardFormatAvailable, GetPriorityClipboardFormat или EnumClipboardFormats. Если оно находит подходящий формат, то тогда вызывает GetClipboardData с идентификатором нужного формата в качестве параметра, чтобы получить данные. В конце приложение использует команду CloseClipboard для закрытия буфера.

Теперь взглянем, как с помощью отладчика определить, какие данные записаны в буфер обмена. (Заметьте, что все мои записи сделаны в системе Win7/2008 R2 — так что на других версиях ОС они могут выглядеть несколько иначе). Поскольку буфер является частью Win32k.sys, вам понадобится отладчик ядра. Я люблю использовать в качестве контрольной точки win32k!InternalSetClipboardData+0xe4. В таком смещении хорошо то, что оно находится за регистром RDI, заполненным данными из SetClipboardData в структуре, известной как tagCLIP.

kd> u win32k!InternalSetClipboardData+0xe4-c L5
win32k!InternalSetClipboardData+0xd8:
fffff960`0011e278 894360          mov     dword ptr [rbx+60h],eax
fffff960`0011e27b 8937            mov     dword ptr [rdi],esi
fffff960`0011e27d 4c896708        mov     qword ptr [rdi+8],r12
fffff960`0011e281 896f10          mov     dword ptr [rdi+10h],ebp
fffff960`0011e284 ff15667e1900    call    qword ptr[win32k!_imp_PsGetCurrentProcessWin32Process (fffff960`002b60f0)]

kd> dt win32k!tagCLIP
   +0x000 fmt              : Uint4B
   +0x008 hData            : Ptr64 Void
   +0x010fGlobalHandle     : Int4B

Вот как выглядит вызов к SetClipboardData от «Блокнота»:

kd> k
Child-SP          RetAddr           Call Site
fffff880`0513a940 fffff960`0011e14f win32k!InternalSetClipboardData+0xe4
fffff880`0513ab90 fffff960`000e9312 win32k!SetClipboardData+0x57
fffff880`0513abd0 fffff800`01482ed3 win32k!NtUserSetClipboardData+0x9e
fffff880`0513ac20 00000000`7792e30ant!KiSystemServiceCopyEnd+0x13
00000000`001dfad8 00000000`7792e494 USER32!ZwUserSetClipboardData+0xa
00000000`001dfae0 000007fe`fc5b892b USER32!SetClipboardData+0xdf
00000000`001dfb20 000007fe`fc5ba625 COMCTL32!Edit_Copy+0xdf
00000000`001dfb60 00000000`77929bd1 COMCTL32!Edit_WndProc+0xec9
00000000`001dfc00 00000000`779298da USER32!UserCallWinProcCheckWow+0x1ad
00000000`001dfcc0 00000000`ff5110bc USER32!DispatchMessageWorker+0x3b5
00000000`001dfd40 00000000`ff51133c notepad!WinMain+0x16f
00000000`001dfdc0 00000000`77a2652d notepad!DisplayNonGenuineDlgWorker+0x2da
00000000`001dfe80 00000000`77b5c521 kernel32!BaseThreadInitThunk+0xd
00000000`001dfeb0 00000000`00000000ntdll!RtlUserThreadStart+0x1d

Итак, теперь мы можем просмотреть содержимое RDI как tagCLIP и увидеть, что записано в буфер:

kd> dt win32k!tagCLIP @rdi
   +0x000 fmt              : 0xd
   +0x008 hData            : 0x00000000`00270235 Void
   +0x010fGlobalHandle     : 0n1

Fmt — это формат для буфера обмена. 0Xd — это число 13, что соответствует тексту в формате Юникода. Однако мы не можем просто запустить du по значению hData, потому что это дескриптор, а не прямой указатель на данные. Так что нужно поискать его в глобальной структуре win32k — gSharedInfo:

kd> ?win32k!gSharedInfo
Evaluate expression: -7284261440224 = fffff960`002f3520
kd> dt win32k!tagSHAREDINFO fffff960`002f3520
   +0x000 psi              : 0xfffff900`c0980a70 tagSERVERINFO
   +0x008 aheList          : 0xfffff900`c0800000 _HANDLEENTRY
   +0x010 HeEntrySize      : 0x18
   +0x018 pDispInfo        : 0xfffff900`c0981e50 tagDISPLAYINFO
   +0x020ulSharedDelta     : 0
   +0x028 awmControl       : [31] _WNDMSG
   +0x218DefWindowMsgs     : _WNDMSG
   +0x228DefWindowSpecMsgs : _WNDMSG

aheList в gSharedInfo содержит массив с дескрипторами, и последние два байта hData, умноженные на размер записи дескриптора, показывают адрес записи нашего дескриптора:

kd> ?0x00000000`00270235 & FFFF
Evaluate expression: 565 = 00000000`00000235
kd> ??sizeof(win32k!_HANDLEENTRY)
unsigned int64 0x18
kd> ? 0xfffff900`c0800000 + (0x235*0x18)
Evaluate expression: -7693351766792 = fffff900`c08034f8
kd> dt win32k!_HANDLEENTRY fffff900`c08034f8
   +0x000 phead            : 0xfffff900`c0de0fb0 _HEAD
   +0x008 pOwner           : (null)
   +0x010 bType            : 0x6 ''
   +0x011 bFlags           : 0 ''
   +0x012 wUniq            : 0x27

Если посмотреть phead со смещением 14, то мы получим наши данные (это смещение может отличаться на разных платформах):

kd> du fffff900`c0de0fb0 + 0x14
fffff900`c0de0fc4 "Hi NTDebugging readers!"

Представим другой сценарий. Я скопировал какой-то текст из Wordpad, и команда SetClipboardData отработала определённое количество раз, чтобы разместить данные в разных форматах. Запись в формате Юникода выглядит так::

Breakpoint 0 hit
win32k!InternalSetClipboardData+0xe4:
fffff960`0011e284 ff15667e1900   call    qword ptr[win32k!_imp_PsGetCurrentProcessWin32Process (fffff960`002b60f0)]
kd> dt win32k!tagCLIP @rdi
   +0x000 fmt              : 0xd
   +0x008 hData            : (null)
   +0x010fGlobalHandle    : 0n0

hData равен нулю! Почему так? Оказывается, буфер обмена позволяет приложению передавать нуль в качестве параметра SetClipboardData для определённого формата. Это означает, что приложение способно предоставить данные в данном формате, но сделает это позже, в случае необходимости. Если я захочу вставить текст в «Блокнот», для чего в буфере должен быть текст в Юникоде, Windows отправит сообщение WM_RENDERFORMAT в окно WordPad, и тогда WordPad предоставит данные в новом формате. Конечно, если приложение закрывается до того, как предоставило данные во всех форматах, Windows понадобятся все форматы. В этом случае Windows отправит сообщение WM_RENDERALLFORMATS, чтобы другие приложения могли использовать данные из буфера обмена после закрытия материнского приложения.

Теперь посмотрим, как приложение может отслеживать буфер обмена на предмет изменений. Это важно знать, потому что в этом месте Windows позволяет сторонним приложениям подключаться к системе. Если у вас наблюдаются непонятные глюки с копированием и вставкой, причиной может быть некорректное поведение какой-то из таких программ. Начнём с того, что рассмотрим механизмы подключения к буферу обмена. Затем рассмотрим, можно ли с помощью отладчика идентифицировать приложения, которые используют такие хуки.

Есть три способа отслеживать буфер обмена на предмет изменений: просмотр буфера, прослушивание форматов буфера и запрос порядкового номера буфера. Мы сосредоточимся на первых двух способах, потому что они предусматривают получение уведомлений, когда содержимое буфера обновилось. В третьем методе приложение должно само проверять каждый раз, изменился ли буфер, и этот метод нельзя использовать в цикле опросов.

Функциональность Clipboard Viewer появилась ещё в версии Windows 2000, если не раньше. Принцип работы довольно простой: приложение, которое заинтересовано в получении уведомлений об изменении в буфере, вызывает SetClipboardViewer и передаёт дескриптор своего окна. Windows хранит этот дескриптор в структуре win32k, и каждый раз при изменении буфера обмена Windows отправляет сообщение WM_DRAWCLIPBOARD в зарегистрированное окно.

Конечно, зарегистрироваться для просмотра буфера могут несколько окон — как Windows справится с этим? Ну, если приложение вызывает SetClipboardViewer, а другое окно раньше уже зарегистрировалось для просмотра буфера обмена, то Windows возвращает новому окну значение дескриптора предыдущего окна. И теперь новое окно, следящее за буфером, обязано вызвать SendMessage каждый раз, когда получает WM_DRAWCLIPBOARD, и уведомить об изменении буфера следующее окно в цепочке тех, кто следит за буфером. Каждое из окон, следящих за буфером, также должно обрабатывать сообщения WM_CHANGECBCHAIN. Такие сообщения уведомляют все остальные окна об удалении одного звена в цепочке и сообщают, какое звено становится следующим в очереди. Это позволяет сохранить цепочку.

Очевидная проблема подобной архитектуры состоит в следующем: она рассчитывает, что каждое приложение, следящее за буфером, будет вести себя корректно, не завершать неожиданно работу и в целом будет хорошим гражданином в системе. Если какое-то из приложений начнёт вести себя недружественно, то оно не отправит уведомление об изменении буфера обмена следующему приложению в цепочке, в результате чего вся цепочка останется без уведомлений.

Чтобы справиться с такими проблемами, в Windows Vista добавили механизм прослушивания формата буфера обмена — Clipboard Format Listener. Он работает во многом так же, как просмотр буфера обмена, за исключением того, что Windows сама ведёт список приложений, которые прослушивают буфер, а не полагается на добропорядочность приложений, которые должны сохранять цепочку.

Если приложение хочет прослушивать буфер, оно вызывает функцию AddClipboardFormatListener и передаёт дескриптор своего окна. После этого обработчик сообщений окна будет получать сообщения WM_CLIPBOARDUPDATE. Когда приложение собирается завершить работу или больше не хочет получать уведомления, оно вызывает RemoveClipboardFormatListener.

Мы рассмотрели, как зарегистрировать просмотр/прослушивание буфера обмена. Теперь посмотрим, как с помощью отладчика определить, какие программы участвуют в этих процессах. Сначала нужно идентифицировать процесс в сессии, где мы хотим проверить мониторинг буфера обмена. Это может быть любой процесс win32 в этой сессии — он нужен нам просто для того, чтобы найти указатель на Window Station. В этом случае я бы использовал окно «Блокнота», как и раньше:

kd> !process 0 0 notepad.exe
PROCESS fffff980366ecb30
    SessionId: 1  Cid: 0374   Peb: 7fffffd8000  ParentCid: 0814
    DirBase: 1867e000  ObjectTable: fffff9803d28ef90  HandleCount: 52.
    Image: notepad.exe

Если вы делаете это в процессе отладки ядра, то понадобится интерактивно сменить контекст (используя .process /I<address>, затем нажать g и подождать, пока отладчик прорвётся назад). Теперь запускаем DT на адрес процесса как _EPROCESS, и смотрим на поле Win32Process:

kd> dt _EPROCESS fffff980366ecb30 Win32Process
nt!_EPROCESS
   +0x258 Win32Process : 0xfffff900`c18c0ce0 Void

Далее посмотрим адрес Win32Process как win32k!tagPROCESSINFO и узнаем значение rpwinsta:

kd> dt win32k!tagPROCESSINFO 0xfffff900`c18c0ce0 rpwinsta
   +0x258 rpwinsta : 0xfffff980`0be2af60 tagWINDOWSTATION

Это наша Window Station. Сливаем содержимое через dt:

kd> dt 0xfffff980`0be2af60 tagWINDOWSTATION
win32k!tagWINDOWSTATION
   +0x000 dwSessionId      : 1
   +0x008 rpwinstaNext     : (null)
   +0x010 rpdeskList       : 0xfffff980`0c5e2f20 tagDESKTOP
   +0x018 pTerm            : 0xfffff960`002f5560 tagTERMINAL
   +0x020 dwWSF_Flags      : 0
   +0x028 spklList         : 0xfffff900`c192cf80 tagKL
   +0x030 ptiClipLock      : (null)
   +0x038 ptiDrawingClipboard: (null)
   +0x040 spwndClipOpen    : (null)
   +0x048 spwndClipViewer  : 0xfffff900`c1a4ca70 tagWND
   +0x050 spwndClipOwner   : 0xfffff900`c1a3ef70 tagWND
   +0x058 pClipBase        : 0xfffff900`c5512fa0 tagCLIP
   +0x060 cNumClipFormats  : 4
   +0x064 iClipSerialNumber : 0x16
   +0x068 iClipSequenceNumber : 0xc1
   +0x070 spwndClipboardListener : 0xfffff900`c1a53440 tagWND
   +0x078 pGlobalAtomTable: 0xfffff980`0bd56c70 Void
   +0x080 luidEndSession   : _LUID
   +0x088 luidUser         : _LUID
   +0x090 psidUser         : 0xfffff900`c402afe0 Void

Обратите внимание на поля spwndClipViewer, spwndClipboardListener и spwndClipOwnerfields. Здесь spwndClipViewer — это последнее зарегистрированное окно в цепочке тех, кто просматривает буфер обмена. Также spwndClipboardListener — последнее зарегистрированное окно прослушивания буфера в списке Clipboard Format Listener. Окно spwndClipOwner — это то окно, которое разместило данные в буфере обмена.

Ели мы знаем окно, то осталось несколько шагов, чтобы узнать, к какому процессу оно относится. Нас интересуют forspwndClipViewer, spwndClipboardListener и spwndClipOwner. Сначала запускаем dt, чтобы узнать значение tagWND. Для этой демонстрации мы используем spwndClipViewer:

kd> dt 0xfffff900`c1a4ca70 tagWND
win32k!tagWND
   +0x000 head             : _THRDESKHEAD
   +0x028 state            : 0x40020008
   +0x028 bHasMeun         : 0y0
   +0x028 bHasVerticalScrollbar : 0y0
…

Нас интересует только значение head — так что если смещение 0, делаем dt для того же адреса на _THRDESKHEAD:

kd> dt 0xfffff900`c1a4ca70 _THRDESKHEAD
win32k!_THRDESKHEAD
   +0x000 h                : 0x00000000`000102ae Void
   +0x008 cLockObj         : 6
   +0x010 pti              : 0xfffff900`c4f26c20tagTHREADINFO
   +0x018 rpdesk           : 0xfffff980`0c5e2f20 tagDESKTOP
   +0x020 pSelf            : 0xfffff900`c1a4ca70  "???"

Теперь запускаем dt для адреса, указанного в поле pti как tagTHREADINFO:

kd> dt 0xfffff900`c4f26c20 tagTHREADINFO
win32k!tagTHREADINFO
   +0x000 pEThread         : 0xfffff980`0ef6cb10 _ETHREAD
   +0x008 RefCount         : 1
   +0x010 ptlW32           : (null)
   +0x018 pgdiDcattr       : 0x00000000`000f0d00 Void

Теперь нам интересно только значение поля pEThread, которое мы можем передать в !thread:

kd> !thread 0xfffff980`0ef6cb10 e
THREAD fffff9800ef6cb10 Cid 087c.07ec  Teb: 000007fffffde000 Win32Thread: fffff900c4f26c20 WAIT: (WrUserRequest) UserModeNon-Alertable
    fffff9801c01efe0  SynchronizationEvent
Not impersonating
DeviceMap                 fffff980278a0fc0
Owning Process            fffff98032e18b30       Image:         viewer02.exe
Attached Process          N/A            Image:         N/A
Wait Start TickCount     5435847        Ticks: 33 (0:00:00:00.515)
Context Switch Count     809            IdealProcessor: 0                 LargeStack
UserTime                  00:00:00.000
KernelTime                00:00:00.062
Win32 Start Address 0x000000013f203044
Stack Init fffff880050acdb0 Current fffff880050ac6f0
Base fffff880050ad000 Limit fffff880050a3000 Call 0
Priority 11 BasePriority 8 UnusualBoost 0 ForegroundBoost 2IoPriority 2 PagePriority 5
Child-SP          RetAddr           Call Site
fffff880`050ac730 fffff800`01488f32 nt!KiSwapContext+0x7a
fffff880`050ac870 fffff800`0148b74f nt!KiCommitThreadWait+0x1d2
fffff880`050ac900 fffff960`000dc8e7 nt!KeWaitForSingleObject+0x19f
fffff880`050ac9a0 fffff960`000dc989 win32k!xxxRealSleepThread+0x257
fffff880`050aca40 fffff960`000dafc0 win32k!xxxSleepThread+0x59
fffff880`050aca70 fffff960`000db0c5 win32k!xxxRealInternalGetMessage+0x7dc
fffff880`050acb50 fffff960`000dcab5 win32k!xxxInternalGetMessage+0x35
fffff880`050acb90 fffff800`01482ed3 win32k!NtUserGetMessage+0x75
fffff880`050acc20 00000000`77929e6a nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffff880`050acc20)
00000000`002ffb18 00000000`00000000 0x77929e6a

Как видим, просмотр буфера обмена зарегистрировн от имени процесса viewer02.exe. Поскольку просмотр идёт по цепочке, определить следующий процесс в цепочке будет непросто. Но мы можем сделать это для тех, кто прослушивает буфер. Снова взглянем на нашу Window Station:

kd> dt 0xfffff980`0be2af60 tagWINDOWSTATION
win32k!tagWINDOWSTATION
   +0x000 dwSessionId      : 1
   +0x008 rpwinstaNext     : (null)
   +0x010 rpdeskList       : 0xfffff980`0c5e2f20 tagDESKTOP
   +0x018 pTerm            : 0xfffff960`002f5560 tagTERMINAL
   +0x020 dwWSF_Flags      : 0
   +0x028 spklList         : 0xfffff900`c192cf80 tagKL
   +0x030 ptiClipLock      : (null)
   +0x038 ptiDrawingClipboard : (null)
   +0x040 spwndClipOpen    : (null)
   +0x048 spwndClipViewer  : 0xfffff900`c1a4ca70tagWND
   +0x050 spwndClipOwner   : 0xfffff900`c1a3ef70tagWND
   +0x058 pClipBase        : 0xfffff900`c5512fa0 tagCLIP
   +0x060 cNumClipFormats  : 4
   +0x064 iClipSerialNumber : 0x16
   +0x068 iClipSequenceNumber : 0xc1
   +0x070 spwndClipboardListener: 0xfffff900`c1a53440 tagWND
   +0x078 pGlobalAtomTable: 0xfffff980`0bd56c70 Void
   +0x080 luidEndSession   : _LUID
   +0x088 luidUser         : _LUID
   +0x090 psidUser         : 0xfffff900`c402afe0 Void

Если запустить dt на spwndClipboardListener, то увидим поле spwndClipboardListenerNext с указанием следующего прослушивающего процесса:

kd> dt 0xfffff900`c1a53440 tagWND spwndClipboardListenerNext
win32k!tagWND
   +0x118 spwndClipboardListenerNext : 0xfffff900`c1a50080 tagWND

При достижении последнего процесса в списке прослушивающих буфер tagWND, значение его поля spwndClipboardListenerNext будет нулевым:

kd> dt 0xfffff900`c1a50080 tagWND spwndClipboardListenerNext
win32k!tagWND
   +0x118 spwndClipboardListenerNext : (null)

Используя адрес окна, мы можем тем же методом добраться до названия процесса. Как упоминалось ранее, поскольку tagWND — это структура ядра, ОС сама хранит указатели spwndClipboardListener/spwndClipboardListenerNext, так что они не могут привести к таким проблемам с отслеживанием буфера, как цепочки просмотра.

На этом заканчивается наш обзор буфера обмена Windows. Надеюсь, для вас он стал информативным. Хотите узнать больше о мониторинге буфера обмена? Вот хорошая статья MSDN об этом.

Копирование файлов или текста — одно из первых действий, которое осваивает пользователь операционной системы. Но мало кто задумывается, куда перемещаются данные в момент, когда вы нажимаете Ctrl+C или выбираете пункт «Копировать» в контекстном меню. Именно для того, чтобы сберечь ваш скопированный или вырезанный файл, используется буфер обмена на компьютере или смартфоне. Поговорим о том, что это такое, как работает эта технология и можно ли посмотреть или очистить буфер обмена, а также где его найти в вашем смартфоне.

Буфер обмена — определение и общая информация

Буфер обмена — это промежуточное хранилище данных, которое используется для переноса информации между программным обеспечением или частями одного приложения. Само по себе наличие буфера обмена является основой для технологии копирования, вырезания и вставки текста или других данных на компьютере.


Интересный факт. Иногда буфер называют также «clipboard». Этим словом изначально назывался блокнот с зажимом для бумаги. Также как мы берем бумагу и зажимаем ее блокнотом, операционная система берет данные и зажимает их в буфере обмена, пока вы не вставите их в другое место.

Давайте разберемся, как работает буфер обмена. В момент, когда пользователь выполняет копирование текста или иных данных они временно сохраняются в буфере обмена. Далее сохраненные элементы можно вставить в другое место, например, в заметки или электронное письмо. Компьютер берет эти данные из памяти и вставляет их. При этом данные все еще остаются на хранении в clipboard, поэтому вы можете вставить файл или текстовый отрывок несколько раз. Исключение — ситуация, когда вы используете команду «Вырезать» для перемещения файлов в Windows. Файлы также помещаются в clipboard, но при вставке вырезанного файла, буфер обмена очищается, и второй раз вставить объект обычно нельзя.

Хотя данные при вставке никуда не исчезают, буфер обмена в его стандартном виде может сохранять исключительно один элемент, поэтому каждый раз, когда пользователь снова выполняет операцию копирования, предыдущих информационный объект замещается. Существуют специальные программы, позволяющие сохранять больше одного элемента. О них мы поговорим ниже.

Буфер обмена подходит для копирования не только текста, но и для изображений, файлов и иных типов данных. Например, если вы хотите поделиться фотографией с другом, вы можете сделать ее копию в буфер обмена и вставить в программу для общения или в письмо. Также clipboard может быть полезен при работе с таблицами, кодом или любыми другими данными, которые нужно перемещать или копировать.

Расположение буфера обмена

Довольно сложно сказать точно, где буфер обмена на компьютере или телефоне, потому что как такового физического места его хранения не существует. Для сохранения информации задействуется часть оперативной памяти устройства (RAM), причем не какая-то отдельная ее часть, а несколько зон. Обычно пользователю компьютера не требуется просматривать данные, хранящиеся в буфере обмена, поэтому ОС чаще всего не выделяют особого места, где бы он мог находиться. При этом существуют специализированные программы диспетчеры и менеджеры буфера обмена, что позволяют найти сохраненные элементы и управлять ими.

Сроки хранения данных

Независимо от того, где вы собираетесь использовать буфер обмена — на компьютере или на смартфоне, не стоит рассматривать его как постоянное хранилище данных. Это место, куда информация помещается временно и долго она там не хранится. Стандартные сроки хранения данных:

  • до перезагрузки устройства — скопированные данные лежат в оперативной памяти, которая очищается при выключении;
  • до копирования новых данных в буфер, если вы не используете менеджеры (о них рассказано ниже);
  • в течение часа на Android, если запись не закреплена пользователем.

Сроки хранения информации при использовании специальных программ для работы с буфером обмена могут быть иными. Однако в любом случае не стоит привыкать пользоваться им как заметками — поставьте для этого специальную программу.

Как просмотреть, использовать и очистить буфер обмена на разных устройствах

Если вы хотите посмотреть данные в буфере обмена, необходимо использовать специальные программы — менеджеры. Они расширяют обычные возможности пользователя, позволяя смотреть скопированные данные, удалять их, выбирать из нескольких вариантов сохраненных в буфере данных. К базовым операциям могут добавляться следующие возможности:

  • создание нескольких буферов обмена, которые можно разделять, сливать;
  • выбирать место, где будут храниться скопированные данные, если их несколько;
  • работать с данными разных форматов;
  • сохранять скопированные элементы;
  • помечать данные, выполнять поиск по ним и так далее.

Поговорим о том, какие менеджеры буфера обмена есть в разных операционных системах, включая программы для телефона.

Работа на ОС Windows

В операционной системе Windows можно пользоваться буфером обмена четырьмя способами: стандартным, с подключенным журналом, из командной строки или с помощью стороннего менеджера буфера. Разберем все доступные пользователю способы.

Стандартный буфер без настроек

Использовать обычный буфер обмена очень просто. Вы можете скопировать текст или данные, выделив их и нажав комбинацию клавиш Ctrl+C (или Command+C для пользователей Mac). Затем, чтобы вставить скопированное, достаточно нажать Ctrl+V (или Command+V для Mac).

Кроме того, можно пользоваться контекстным меню. Для этого выделите текст или файл, который нужно скопировать, кликните правой кнопкой и выберите пункт «Копировать». Контекстное меню может отличаться от программы к программе.

Контекстное меню с пунктом «Копировать» в браузере Microsoft Edge

Контекстное меню с пунктом «Копировать» в браузере Microsoft Edge

Вставляются данные точно также — с помощью контекстного меню. Нажмите на месте, где нужно вставить файл, и выберите пункт «Вставить». Обратите внимание, что программы запрашивают из буфера определенный формат данных, тот, который они могут обрабатывать. Например, если вы скопируете картинку, то не сможете вставить ее в адресную строку браузера — пункт «Вставить» будет просто недоступен.

Помните, что буфер обмена временно хранит данные только до тех пор, пока вы их не замените новыми. Если вы случайно скопировали новую информацию, то предыдущая будет потеряна. Поэтому будьте внимательны при использовании буфера обмена в Windows.


Очистить буфер обмена на компьютере с Windows очень просто: достаточно скопировать туда любые другие данные и предыдущие будут затерты.

Встроенный журнал (бывшая «Папка обмена»)

В старых версиях ОС Windows для управления буфером обмена пользователь мог применять встроенную утилиту, которая называлась «Папка обмена», но в актуальных версия операционной системы ее уже нет. В Windows 10 появился журнал буфера обмена, который можно вызвать по сочетанию клавиш Win+V. Прежде чем он заработает и начнет сохранять историю буфера, необходимо включить его (нажать кнопку «Включить».

Выключенный буфер обмена в Windows 10

Выключенный буфер обмена в Windows 10

После включения журнал заработает и будет сохранять все данные, которые вы копируете. Просмотреть их можно по тому же сочетанию клавиш — Win+V. Если вы захотите удалить или закрепить какую-то запись или очистить буфер обмена полностью, нажмите на три точки рядом с любым пунктом из списка.

Контекстное меню, позволяющее удалить, закрепить или очистить буфер обмена

Контекстное меню, позволяющее удалить, закрепить или очистить буфер обмена

Выключить встроенный журнал можно в «Параметрах» компьютера. Для этого зайдите в «Параметры», откройте раздел «Система» и на вкладке «Буфер обмена» переключите флажок «Журнал буфера обмена» в состояние «Откл». Здесь же, используя кнопку чуть ниже, можно очистить буфер обмена полностью.

Флажок «Журнал буфера обмена» в отключенном состоянии

Флажок «Журнал буфера обмена» в отключенном состоянии

На компьютере из командной строки

В Windows есть программный исполняемый файл, который называется clip.exe и хранится в папке System32 (полный путь: C:\Windows\System32 файл clip.exe). Это системная утилита, благодаря которой пользователь может копировать данные из командной строки в буфер обмена. Он используется, когда нужно скопировать большое количество текста, выведенное программой в консоли. Делать это с помощью выделения мышью неудобно, можно использовать команду | clip.

Ниже на скриншоте пользователь сначала ввел команду echo, чтобы вывести текст на экран, а после — вывел тот же самый текст, но перенаправил вывод в буфер обмена, используя команды echo и clip. Ниже во встроенном журнале Windows видно, что текст сохранился в буфере обмена. Подобным образом команду clip можно использовать с другим текстом в консоли.

Скриншот консоли, откуда текст перенаправлен в буфер обмена

Скриншот консоли, откуда текст перенаправлен в буфер обмена

Сторонние менеджеры буфера

Для работы с буфером обмена в Windows можно установить сторонние программы, например, Punto Switcher. Он не позволяет посмотреть буфер, который используется сейчас, но может следить за ним после установки программы и включения этой функции в настройках. Программа позволяет сохранять историю буфера и выбирать, какие из старых элементов вставить в документ.

Если вы хотите использовать Punto Switcher в качестве диспетчера буфера обмена, установите его на свой компьютер и откройте настройки программы. Там в разделе «Общие» на вкладке «Дополнительно» необходимо установить флажок «Следить за буфером обмена».

Флажок «Следить за буфером обмена» в программе Punto Switcher

Флажок «Следить за буфером обмена» в программе Punto Switcher

После выставления этой настройки вы сможете просматривать буфер обмена. Для этого кликните правой кнопкой на иконку Punto Switcher в системном трее, выберите пункт «Буфер обмена» в контекстном меню и наведите на него курсор. Вам отобразится список всего, что сохранено в буфере.

Список сохраненных с помощью программы Punto Switcher в буфере записей

Список сохраненных с помощью программы Punto Switcher в буфере записей

Если при работе со стандартным буфером обмена его можно очистить повторным копированием какого-либо мусора, то при работе с диспетчером такой способ не подходит. Мусор просто сохранится в истории. В этом случае очистку нужно проводить средствами той программы, которую вы используете. Например, в Punto Switcher есть отдельный пункт меню «Очистить», который находится под всеми сохраненными в буфере обмена элементами.

Пункт «Очистить» в меню сохраненных элементов из буфера обмена в программе Punto Switcher

Пункт «Очистить» в меню сохраненных элементов из буфера обмена в программе Punto Switcher

Буфер обмена на телефоне (смартфоне)

Вопрос, где в телефоне буфер обмена, намного более актуальный, чем тот же — о компьютере. Специфика использования смартфона предполагает, что разработчики должны были упростить копирование и вставку с помощью менеджера буфера. Выделять текст на экране не слишком удобно, как и вызывать меню вставки длинным нажатием. Поэтому менеджеры буфера обмена обычно входят в состав операционной системы, но иногда они требуют включения.

Работа с буфером обмена на Android

Буфер обмена в телефоне на Android находится там же, где и клавиатура. Если вызвать ее в любом текстовом документе, то можно увидеть небольшую иконку в виде блокнота с заметками. В некоторых случаях вам придется нажать на кнопку с четырьмя квадратами, чтобы вытащить иконку из скрытых на основную панель.

Иконка буфера обмена и настройки панели на клавиатуре GBoard

Иконка буфера обмена и настройки панели на клавиатуре GBoard

Если нажать на иконку буфера обмена в телефоне в первый раз, на месте, где обычно находятся записи, будет кнопка его включения. Нажмите ее, и функция заработает. На месте кнопки появятся тестовые записи с заметками, которые помогут вам освоить базовые функции менеджера буфера обмена.

Кнопка включения и тестовые записи в буфере на клавиатуре GBoard

Кнопка включения и тестовые записи в буфере на клавиатуре GBoard

В этом менеджере буфера обмена пользователь может закреплять, удалять и даже добавлять новые записи. Чтобы взаимодействовать с одним из сохраненных объектов, нажмите на него и подержите. Слева появится меню, позволяющее вставить его в заметку, закрепить или удалить. Если вы хотите взаимодействовать сразу с несколькими заметками, используйте иконку в виде карандаша в правой части экрана. Она позволит выделить объекты флажками, закрепить их или удалить.

Меню настройки отдельной записи (слева) и правка сразу нескольких объектов

Меню настройки отдельной записи (слева) и правка сразу нескольких объектов

Очищать пространство буфера на Android специально не нужно. Через час после сохранения туда текста или иного объекта он удаляется. Но пользователь может стереть отдельные записи или, напротив, закрепить часть объектов, чтобы сохранить их на срок более часа.

Работа с буфером обмена в iOS

Разработчики операционной системы для iPhone во главу угла ставят безопасность пользователя, поэтому среди стандартных функций ОС нет менеджера буфера обмена. То есть, в iOS человек взаимодействует с буфером точно также, как в Windows: он может скопировать туда одну запись, которая удаляется после копирования следующей записи или после перезагрузки.

Но для iOS есть приложения, которые значительно расширяют функционал стандартного буфера. Одна из таких программ называется Clipboard. Скачать подходящий софт можно из App Store.

Обратите внимание, что прежде чем открыть буфер обмена, нужно дать ему разрешения как читать, так и сохранять все данные, которые набирает пользователь. Для этого зайдите в настройки программы, найдите раздел «буфер обмена» и разрешите полный доступ.

Интерфейс итогового буфера будет зависеть от того, какую программу вы выбрали. Функции вроде управления записей и очистки буфера тоже будут отличаться. Чтобы узнать, где найти буфер обмена в телефоне с iOS внимательно читайте описание программы, которую будете ставить на смартфон.

Превью интерфейса упомянутой выше программы Clipboard

Превью интерфейса упомянутой выше программы Clipboard

Буфер обмена в Linux

Общие базовые принципы работы с буфером обмена в Linux сохраняются, однако в большинстве дистрибутивов этой операционной системы предусмотрен не один буфер, а два. Они должны синхронизироваться между собой, если все работает правильно.

Текст, который выделяется с помощью мыши или клавиатуры, считается буфером выделения. Его можно скопировать и вставить с помощью средней кнопкой мыши. Но когда применяется команда «Вырезать» или «Скопировать», текст перемещается в буфер «clipboard», откуда его можно вставить с помощью команды «Вставить».

Для Linux также существуют продвинутые менеджеры буфера обмена. Чаще всего в качестве примера приводят программу Glipper (разработана для графической среды GNOME) и программу Klipper (разработана для графической среды KDE). Обе расширяют возможности стандартного буфера. Есть и другие программы, которые можно установить из магазина приложений или других источников.

Несколько менеджеров буфера обмена на выбор для Ubuntu

Несколько менеджеров буфера обмена на выбор для Ubuntu

Теперь, когда вы знакомы с основами работы с буфером обмена, вы можете с легкостью управлять копированием и вставкой информации на своем компьютере. Буфер обмена — это инструмент, который позволяет вам эффективно перемещаться между различными приложениями и сохранять нужные фрагменты текста, изображения или другие данные. Используйте различные программы и расширения, чтобы расширить функциональность буфера обмена и сделать работу с ним еще более удобной!

1. Обмен данными в приложениях Windows

2. КРАТКАЯ ХАРАКТЕРИСТИКА ОПЕРАЦИОННОЙ СИСТЕМЫ WINDOWS

Рассмотрим самую распространенную в наши дни операционную систему Windows.
Windows — это популярная, хорошо защищенная многозадачная операционная система персонального компьютера с
графическим пользовательским интерфейсом.
Операционная система обеспечивает эффективную работу в системах мультимедиа и в информационно-вычислительных сетях
(в том числе и в Интернете), электронную почтовую связь.
При работе в Windows можно использовать длинные, достаточно информативные имена файлов, в которых допускаются даже
пробелы; перемещать любые объекты в любое место экрана и в любом месте экрана, вызывать контекстное меню или получать
контекстную справку.
Отличительными чертами этой операционной системы являются:
1)встроенная сетевая поддержка,—в отличие от других ОС, Windows изначально создавалась с учетом работы в вычислительной
сети, поэтому в интерфейс пользователя встроены функции совместного использования сетевых файлов, устройств и объектов;
2)приоритетная многозадачность, позволяющая приложениям с более высоким приоритетом вытеснять менее приоритетные
приложения, что приводит, в частности, к более эффективному использованию машинного времени ввиду автоматической
ликвидации зависания системы при выполнении «сбойного» приложения;
3)присутствие достаточно мощных средств защиты файлов различных пользователей от несанкционированного доступа; наличие
многоуровневого доступа к ресурсам с назначением пользователям уровня доступа в соответствии с их компетенцией;
4)поддержка нескольких файловых систем — кроме файловой системы FAT, понимаемой всеми версиями Windows имеет
собственную файловую систему (NTFS);
5)поддержка широкого спектра компьютерных платформ, в том числе и мультипроцессорных вычислительных систем.

3. ПРИЛОЖЕНИЯ WINDOWS

Windows — включает ряд вспомогательных программ,
называемых стандартными, которые позволяют удовлетворить
многие потребности пользователя. К ним относятся: редактор
текста Блокнот и более сложный — WordPad, графический
редактор Paint, программа Калькулятор, а также другие
полезные утилиты.
Калькулятор — это простая, но полезная программа, которую
можно использовать так же, как карманный калькулятор. Она
имеет два режима работы: обычный (standard) калькулятор и
инженерный (scientific) калькулятор (Рис. 1). Обычный
калькулятор выполняет четыре арифметических
действия.Инженерный калькулятор может также вычислять
тригонометрические и логические функции, а также
переводить числа и углы в разные системы счисления и
выполнять другие операции

4. Обычные инженерные калькуляторы

5. Чтобы запустить калькулятор, выберите в меню «Пуск» пункты «Программы», «Стандартные» (Accessories), затем «Калькулятор»

Чтобы запустить калькулятор, выберите в меню «Пуск» пункты «Программы»,
«Стандартные» (Accessories), затем «Калькулятор» (Calculator).

6. Блокнот

Простейший текстовый редактор, в котором
можно создать текстовый документ,
запомнить его в файле и распечатать.
Блокнот имеет резко ограниченные
возможности обработки текста и хранения
больших текстовых документов. Это
записная книжка, ориентированная на
заметки, записки, справки небольшого
размера. Окно программы Блокнот имеет
строку меню, состоящую из разделов
«Файл», «Правка», «Поиск», «Справка».
Чтобы запустить Блокнот, выберите в меню «Пуск» пункты «Программы»,
«Стандартные», затем «Блокнот» (Notepad). Сразу после запуска программа готова к
работе. По умолчанию в Блокноте используется стандартный системный шрифт. Из
меню Правка можно настроить программу на работу с другим шрифтом. В этом же
меню находится очень важная функция «Перенос по словам», которая позволяет
переносить текст автоматически, когда заканчивается строка. Если данная функция
отключена, строка имеет 255 символов. Общий объем информации, поддерживаемый
редактором, составляет около 7 кб. Информация сохраняется в файлах текстового
формата (*.txt), или с таким расширением, которое задаст пользователь. Редактор
очень удобен для выполнения системных операций с файлами настройки системы.

7. Текстовый редактор WordPad

В числе стандартных программ
Windows имеется текстовый редактор
WordPad. Он может создавать простые
текстовые документы (ASCII-файлы) и
файлы, содержащие символьное и
абзацное форматирование, а также
открывать и сохранять документы в
нескольких форматах.

8. Текстовый редактор WordPad

Хотя WordPad не имеет столь широких возможностей, как, например, Word для Windows, он может быть
использован вместо текстовых редакторов среднего уровня. WordPad является хорошим инструментом
для написания заметок, писем, отчетов и других текстовых документов.
Это единственная программа, которая открывает текстовые файлы, подготовленные в ДОС с
использованием альтернативной русской кодировки.
Для запуска WordPad выберите в меню «Пуск» (Start) пункты «Программы» (Programs), «Стандартные»
(Accessories), затем WordPad.
Чтобы создать новый документ, наберите в окне редактора нужный текст, а затем сохраните его под
желаемым именем. При вводе текста избегайте использовать пробелы для размещения отдельных
элементов текста, например формирования абзацных отступов. Для этой цели следует использовать
параметры абзаца, которые можно открыть, выбрав из меню команды «Формат» (Format), «Абзац»
(Paragraph).
WordPad может открывать файлы, записанные в разных форматах. Для каждого из этих форматов
можно установить режим переноса слов (параметры вкладки «Внедренный объект» (Embedded)
применяются при редактировании текста, вставленного в другой документ). Для этого выберите из
меню команды «Вид» (View), затем «Параметры» (Options). При этом WordPad выведет на экран
диалоговое окно «Параметры». Щелкните на вкладке используемого вами формата и установите один
из трех переключателей в группе «Перенос по словам» (Word wrap):
«Не производится» (No wrap). В этом режиме WordPad не переносит текст на новую строку при
достижении края окна или правого поля (если оно установлено). Если продолжать набирать текст, окно
смещается вправо.
«В границах окна» (Wrap to window). Этот режим вызывает перенос текста на следующую строку, когда
конец текущей строки достигает края окна. Изменение размеров окна влияет на длину каждой строки
текста.
«В границах полей» (Wrap to ruler). Этот режим заставляет WordPad переносить текст на новую строку по
достижении им правого поля независимо от размеров окна.

9. Графический редактор Paint

• Paint позволяет
создавать или
редактировать
файлы растровых
рисунков в
формате BMP.
Формат файла
BMP является
стандартным
растровым
форматом
файлов Windows.

10. Графический редактор Paint

Можно использовать Paint для создания и редактирования растровых файлов
документов, изменения заставок Windows — и в других целях. Для обработки
фотографических изображений лучше использовать более сложные
графические редакторы, например: Photoshop, Photoeditor.
Для запуска Paint щелкните на кнопке «Пуск» (Start), затем выберите из меню
пункты «Программы» (Programs), «Стандартные» (Accessories) и Paint. Теперь
можете приступать к рисованию. В программе имеется довольно богатый
набор инструментов.
Щелкните на инструменте, который вы хотите использовать, переведите
мышь в область рисования и начинайте рисовать. При нажатой левой кнопке
мыши инструмент оставляет след основного цвета, при нажатой правой
кнопке — цвета фона. Изменить основной цвет и цвет фона можно, щелкнув,
соответственно, левой или правой кнопкой мыши на нужном цвете в палитре,
расположенной в нижней части экрана. Закончив рисунок, сохраните его.
Если допущена ошибка, выберите из меню Рисунок (Image) команду
«Очистить» (Clear image), а затем начните все сначала. Можно отменить одно
или несколько последних действий, выбрав из меню «Правка» (Edit) команду
«Отмена» (Undo).

11. ОБМЕН ДАННЫМИ МЕЖДУ ПРИЛОЖЕНИЯМИ

• В состав Windows входят приложения, предназначенные для создания
документов различного характера (текстовых, табличных,
графических). Документ, разработанный в одном приложении, может
содержать фрагменты в других приложений. Таким образом,
обмениваясь данными, приложения работают совместно, создавая
составной или интегрированный документ.
• Например, в текст, созданный в приложении WordPad, можно
включить результат вычислений, выполненный в Калькуляторе, и
рисунок, нарисованный в графическом редакторе Paint. В результате
появляется составной документ, включающий данные разного типа,
созданные в других программах. Когда открывается текстовый
документ, являющийся главным, подключаются связанные с ним
объекты из других приложений.
• Обмен данными в Windows организуется одним из следующих
способов:
• 1)через буфер обмена;
• 2)с помощью технологии OLE.

12. Буфер обмена

• При обмене данными через буфер следует выделить объект,
созданный в некотором приложении, и поместить его в буфер
командой «Правка» «Вырезать» или «Правка» «Копировать». Из
буфера обмена объект можно вставить командой «Правка»,
«Вставить» в любое приложение, имеющее доступ к буферу.
Вставленный таким обратим объект становится элементом
составного документа, теряя связь с тем приложением, которое его
создало.
• Предположим, для вставки графического объекта в текстовый
документ вы использовали обмен данными через буфер. В этом
случае рисунок теряет связь с программой, которая его создала, а для
того чтобы его отредактировать, необходимо выполнить следующие
шаги:
• 1)удалить из текста старый вариант рисунка;
• 2)запустить программу, в которой создавался рисунок, открыть файл,
содержащий рисунок;
• 3)внести в рисунок изменения;
• 4)вставить рисунок в текст.

13. Обмен данными по технологии OLE

Более гибким способом обмена данными между приложениями Windows является технология
OLE (Object Linking and Embedding, связывание и внедрение объектов). Технология OLE
позволяет установить связь объекта, вставленного в документ, с приложением, которое его
создавало.
При использовании технологии OLE объект, созданный в некотором приложении, должен быть
выделен и помещен в буфер командой «Правка», «Вырезать» или «Правка», «Копировать». Для
внедрения объекта из буфера следует использовать команду «Правка», «Специальная вставка».
В этом случае устанавливается связь объекта с приложением, которое его создало.
Приложение, в котором создан внедренный объект, запускается при необходимости
редактирования двойным щелчком по объекту. Пользователь получает возможность работать
над составным документом средствами приложения, в котором создается главный документ,
и средствами приложения, в котором создан внедренный объект.
Технологию OLE рассмотрим на примере составного документа, созданного на основе текста в
приложении WordPad, в который вставлен рисунок из приложения Paint. Рисунок необходимо
отредактировать, т. е. внести в него изменения. Программа WordPad своими средствами не
может изменять данные из другой программы. В программе Paint сделанный рисунок
выделяется и копируется. В документе WordPad устанавливается указатель мыши в то место,
куда будет интегрирован рисунок, и в меню «Правка» выполняется команда «Специальная
вставка». В открывшемся диалоговом окне выбирают способ вставки «Вставить» или «Связать»
и вид объекта «рисунок». Завершается операция нажатием кнопки «ОК».

14. Основные понятия технологии OLE

• В приведенном примере — объект OLE — рисунок; сервер
OLE — программа для создания графических изображений
Paint; клиент OLE- программа для создания текстовых
документов WordPad.
• Технология OLE позволяет внедрить документ или связать
объект OLE с приложением клиента. Рассмотрим эти
варианты.

15. Внедрить документ как объект OLE

• Внедренный документ можно редактировать средствами OLE
сервера, но внесенные изменения не отражаются на исходном файле,
а только на его копии, вставленной в главный документ. В нашем
примере для редактирования рисунка выполняется двойной щелчок
по рисунку, запускается программа Paint, которая позволяет внести
изменения в рисунок, и с этими изменениями рисунок останется в
тексте, однако исходный файл рисунка сохранится без изменений.

16. Связать объект OLE с приложением клиентом

• При связывании документов в процессе редактирования исходного
файла объекта OLE изменения отражаются и в клиенте OLE, т. к.
клиент OLE содержит информацию о том, где следует искать этот
объект.

17. Презентацию сделала : Воронина Анастасия Валерьевна ГД -1501 Преподаватель : Соколовская Светлана Анатольевна

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Мелодии для запуска windows
  • Wlanapi dll windows server 2008
  • Как поменять битность монитора windows 11
  • Lxml python install windows
  • Windows 10 не загружается cmd