Applies ToWindows 11 Windows 10
Использование буфера обмена
При копировании содержимого на компьютер оно автоматически копируется в буфер обмена для вставки. Вы можете вставить несколько элементов из журнала буфера обмена, а также закрепить элементы, которые вы, как правило, используете все время, и синхронизировать журнал буфера обмена с облаком.
Ниже приведены ответы на некоторые вопросы, связанные с буфером обмена.
Открытие параметров буфера обмена
Чтобы включить буфер обмена в первый раз, выберите клавиши с логотипом Windows + V, а затем выберите Включить.
Чтобы синхронизировать элементы буфера обмена с компьютером, необходимо убедиться, что функция синхронизации включена.
-
Выберите Пуск > Параметры > системный > буфер обмена .
-
Установите переключатель журнал буфера обмена на всех устройствах в значение Вкл.
Примечание: Функция синхронизации привязана к вашей учетной записи Майкрософт или рабочей учетной записи, поэтому не забудьте использовать одни и те же данные для входа на всех устройствах.
Вы можете быстро очистить все, кроме закрепленных элементов, на устройстве и в облаке.
-
Выберите Пуск > Параметры > системный > буфер обмена .
-
В области Очистить данные буфера обмена выберите Очистить.
Вы также можете очистить журнал буфера обмена устройства, выбрав клавиши с логотипом Windows +V, а затем выбрав параметр Очистить все в верхней части экрана.
Вы можете очистить любой конкретный элемент в буфере обмена.
-
Выберите Клавиша с логотипом Windows + V.
-
Рядом с рассматриваемым элементом выберите Дополнительные сведения (…), а затем — Удалить .
Устранение неполадок с буфером обмена
Убедитесь, что вы включили журнал буфера обмена. Чтобы включить буфер обмена в первый раз, выберите клавиши с логотипом Windows + V и выберите Включить.
Журнал буфера обмена очищается при каждом перезапуске компьютера, за исключением закрепленных элементов.
Вы можете настроить автоматическую синхронизацию скопированных элементов с другими устройствами.
Примечание: Функция синхронизации привязана к вашей учетной записи Майкрософт или рабочей учетной записи, поэтому не забудьте использовать одни и те же данные для входа на всех устройствах.
-
Выберите Пуск > Параметры > системный > буфер обмена .
-
В разделе Журнал буфера обмена на устройствах установите переключатель в значение Вкл.
-
Выберите Автоматически синхронизировать текст, который я копируем.
Примечание: Параметр Вручную синхронизировать текст, который я копируем, означает, что вам нужно открыть журнал буфера обмена (клавиша с логотипом Windows + V) и вручную нажать кнопку синхронизации в элементе буфера обмена. Затем текст будет отправлен в облако и синхронизирован с другими устройствами.
Размеры элементов не должны превышать 4 МБ. Поддерживаются форматы файлов text, HTML и bitmap.
Журнал буфера обмена рассчитан не более чем на 25 скопированных записей. Система автоматически удаляет старые элементы(если они не закреплены), чтобы освободить место для новых.
Нужна дополнительная помощь?
Нужны дополнительные параметры?
Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.
Копирование файлов или текста — одно из первых действий, которое осваивает пользователь операционной системы. Но мало кто задумывается, куда перемещаются данные в момент, когда вы нажимаете Ctrl+C или выбираете пункт «Копировать» в контекстном меню. Именно для того, чтобы сберечь ваш скопированный или вырезанный файл, используется буфер обмена на компьютере или смартфоне. Поговорим о том, что это такое, как работает эта технология и можно ли посмотреть или очистить буфер обмена, а также где его найти в вашем смартфоне.
Буфер обмена — определение и общая информация
Буфер обмена — это промежуточное хранилище данных, которое используется для переноса информации между программным обеспечением или частями одного приложения. Само по себе наличие буфера обмена является основой для технологии копирования, вырезания и вставки текста или других данных на компьютере.
Интересный факт. Иногда буфер называют также «clipboard». Этим словом изначально назывался блокнот с зажимом для бумаги. Также как мы берем бумагу и зажимаем ее блокнотом, операционная система берет данные и зажимает их в буфере обмена, пока вы не вставите их в другое место.
Давайте разберемся, как работает буфер обмена. В момент, когда пользователь выполняет копирование текста или иных данных они временно сохраняются в буфере обмена. Далее сохраненные элементы можно вставить в другое место, например, в заметки или электронное письмо. Компьютер берет эти данные из памяти и вставляет их. При этом данные все еще остаются на хранении в clipboard, поэтому вы можете вставить файл или текстовый отрывок несколько раз. Исключение — ситуация, когда вы используете команду «Вырезать» для перемещения файлов в Windows. Файлы также помещаются в clipboard, но при вставке вырезанного файла, буфер обмена очищается, и второй раз вставить объект обычно нельзя.
Хотя данные при вставке никуда не исчезают, буфер обмена в его стандартном виде может сохранять исключительно один элемент, поэтому каждый раз, когда пользователь снова выполняет операцию копирования, предыдущих информационный объект замещается. Существуют специальные программы, позволяющие сохранять больше одного элемента. О них мы поговорим ниже.
Буфер обмена подходит для копирования не только текста, но и для изображений, файлов и иных типов данных. Например, если вы хотите поделиться фотографией с другом, вы можете сделать ее копию в буфер обмена и вставить в программу для общения или в письмо. Также clipboard может быть полезен при работе с таблицами, кодом или любыми другими данными, которые нужно перемещать или копировать.
Расположение буфера обмена
Довольно сложно сказать точно, где буфер обмена на компьютере или телефоне, потому что как такового физического места его хранения не существует. Для сохранения информации задействуется часть оперативной памяти устройства (RAM), причем не какая-то отдельная ее часть, а несколько зон. Обычно пользователю компьютера не требуется просматривать данные, хранящиеся в буфере обмена, поэтому ОС чаще всего не выделяют особого места, где бы он мог находиться. При этом существуют специализированные программы диспетчеры и менеджеры буфера обмена, что позволяют найти сохраненные элементы и управлять ими.
Сроки хранения данных
Независимо от того, где вы собираетесь использовать буфер обмена — на компьютере или на смартфоне, не стоит рассматривать его как постоянное хранилище данных. Это место, куда информация помещается временно и долго она там не хранится. Стандартные сроки хранения данных:
- до перезагрузки устройства — скопированные данные лежат в оперативной памяти, которая очищается при выключении;
- до копирования новых данных в буфер, если вы не используете менеджеры (о них рассказано ниже);
- в течение часа на Android, если запись не закреплена пользователем.
Сроки хранения информации при использовании специальных программ для работы с буфером обмена могут быть иными. Однако в любом случае не стоит привыкать пользоваться им как заметками — поставьте для этого специальную программу.
Как просмотреть, использовать и очистить буфер обмена на разных устройствах
Если вы хотите посмотреть данные в буфере обмена, необходимо использовать специальные программы — менеджеры. Они расширяют обычные возможности пользователя, позволяя смотреть скопированные данные, удалять их, выбирать из нескольких вариантов сохраненных в буфере данных. К базовым операциям могут добавляться следующие возможности:
- создание нескольких буферов обмена, которые можно разделять, сливать;
- выбирать место, где будут храниться скопированные данные, если их несколько;
- работать с данными разных форматов;
- сохранять скопированные элементы;
- помечать данные, выполнять поиск по ним и так далее.
Поговорим о том, какие менеджеры буфера обмена есть в разных операционных системах, включая программы для телефона.
Работа на ОС Windows
В операционной системе Windows можно пользоваться буфером обмена четырьмя способами: стандартным, с подключенным журналом, из командной строки или с помощью стороннего менеджера буфера. Разберем все доступные пользователю способы.
Стандартный буфер без настроек
Использовать обычный буфер обмена очень просто. Вы можете скопировать текст или данные, выделив их и нажав комбинацию клавиш Ctrl+C (или Command+C для пользователей Mac). Затем, чтобы вставить скопированное, достаточно нажать Ctrl+V (или Command+V для Mac).
Кроме того, можно пользоваться контекстным меню. Для этого выделите текст или файл, который нужно скопировать, кликните правой кнопкой и выберите пункт «Копировать». Контекстное меню может отличаться от программы к программе.
Контекстное меню с пунктом «Копировать» в браузере Microsoft Edge
Вставляются данные точно также — с помощью контекстного меню. Нажмите на месте, где нужно вставить файл, и выберите пункт «Вставить». Обратите внимание, что программы запрашивают из буфера определенный формат данных, тот, который они могут обрабатывать. Например, если вы скопируете картинку, то не сможете вставить ее в адресную строку браузера — пункт «Вставить» будет просто недоступен.
Помните, что буфер обмена временно хранит данные только до тех пор, пока вы их не замените новыми. Если вы случайно скопировали новую информацию, то предыдущая будет потеряна. Поэтому будьте внимательны при использовании буфера обмена в Windows.
Очистить буфер обмена на компьютере с Windows очень просто: достаточно скопировать туда любые другие данные и предыдущие будут затерты.
Встроенный журнал (бывшая «Папка обмена»)
В старых версиях ОС Windows для управления буфером обмена пользователь мог применять встроенную утилиту, которая называлась «Папка обмена», но в актуальных версия операционной системы ее уже нет. В Windows 10 появился журнал буфера обмена, который можно вызвать по сочетанию клавиш Win+V. Прежде чем он заработает и начнет сохранять историю буфера, необходимо включить его (нажать кнопку «Включить».
Выключенный буфер обмена в 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
Буфер обмена на телефоне (смартфоне)
Вопрос, где в телефоне буфер обмена, намного более актуальный, чем тот же — о компьютере. Специфика использования смартфона предполагает, что разработчики должны были упростить копирование и вставку с помощью менеджера буфера. Выделять текст на экране не слишком удобно, как и вызывать меню вставки длинным нажатием. Поэтому менеджеры буфера обмена обычно входят в состав операционной системы, но иногда они требуют включения.
Работа с буфером обмена на Android
Буфер обмена в телефоне на Android находится там же, где и клавиатура. Если вызвать ее в любом текстовом документе, то можно увидеть небольшую иконку в виде блокнота с заметками. В некоторых случаях вам придется нажать на кнопку с четырьмя квадратами, чтобы вытащить иконку из скрытых на основную панель.
Иконка буфера обмена и настройки панели на клавиатуре GBoard
Если нажать на иконку буфера обмена в телефоне в первый раз, на месте, где обычно находятся записи, будет кнопка его включения. Нажмите ее, и функция заработает. На месте кнопки появятся тестовые записи с заметками, которые помогут вам освоить базовые функции менеджера буфера обмена.
Кнопка включения и тестовые записи в буфере на клавиатуре GBoard
В этом менеджере буфера обмена пользователь может закреплять, удалять и даже добавлять новые записи. Чтобы взаимодействовать с одним из сохраненных объектов, нажмите на него и подержите. Слева появится меню, позволяющее вставить его в заметку, закрепить или удалить. Если вы хотите взаимодействовать сразу с несколькими заметками, используйте иконку в виде карандаша в правой части экрана. Она позволит выделить объекты флажками, закрепить их или удалить.
Меню настройки отдельной записи (слева) и правка сразу нескольких объектов
Очищать пространство буфера на Android специально не нужно. Через час после сохранения туда текста или иного объекта он удаляется. Но пользователь может стереть отдельные записи или, напротив, закрепить часть объектов, чтобы сохранить их на срок более часа.
Работа с буфером обмена в iOS
Разработчики операционной системы для iPhone во главу угла ставят безопасность пользователя, поэтому среди стандартных функций ОС нет менеджера буфера обмена. То есть, в iOS человек взаимодействует с буфером точно также, как в Windows: он может скопировать туда одну запись, которая удаляется после копирования следующей записи или после перезагрузки.
Но для iOS есть приложения, которые значительно расширяют функционал стандартного буфера. Одна из таких программ называется Clipboard. Скачать подходящий софт можно из App Store.
Обратите внимание, что прежде чем открыть буфер обмена, нужно дать ему разрешения как читать, так и сохранять все данные, которые набирает пользователь. Для этого зайдите в настройки программы, найдите раздел «буфер обмена» и разрешите полный доступ.
Интерфейс итогового буфера будет зависеть от того, какую программу вы выбрали. Функции вроде управления записей и очистки буфера тоже будут отличаться. Чтобы узнать, где найти буфер обмена в телефоне с iOS внимательно читайте описание программы, которую будете ставить на смартфон.
Превью интерфейса упомянутой выше программы Clipboard
Буфер обмена в Linux
Общие базовые принципы работы с буфером обмена в Linux сохраняются, однако в большинстве дистрибутивов этой операционной системы предусмотрен не один буфер, а два. Они должны синхронизироваться между собой, если все работает правильно.
Текст, который выделяется с помощью мыши или клавиатуры, считается буфером выделения. Его можно скопировать и вставить с помощью средней кнопкой мыши. Но когда применяется команда «Вырезать» или «Скопировать», текст перемещается в буфер «clipboard», откуда его можно вставить с помощью команды «Вставить».
Для Linux также существуют продвинутые менеджеры буфера обмена. Чаще всего в качестве примера приводят программу Glipper (разработана для графической среды GNOME) и программу Klipper (разработана для графической среды KDE). Обе расширяют возможности стандартного буфера. Есть и другие программы, которые можно установить из магазина приложений или других источников.
Несколько менеджеров буфера обмена на выбор для Ubuntu
Теперь, когда вы знакомы с основами работы с буфером обмена, вы можете с легкостью управлять копированием и вставкой информации на своем компьютере. Буфер обмена — это инструмент, который позволяет вам эффективно перемещаться между различными приложениями и сохранять нужные фрагменты текста, изображения или другие данные. Используйте различные программы и расширения, чтобы расширить функциональность буфера обмена и сделать работу с ним еще более удобной!
Время на прочтение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 об этом.
Буфер обмена Windows позволяет перемещать фрагменты текста или определённые данные между открытыми приложениями. Однако, его можно сделать ещё более эффективным!
Помните уже старый анекдот когда профессор спрашивал у студента, какова была методика написания его дипломной работы? – CTRL+C – CTRL+V, – ответил студент. Но, наверняка, он, как и многие другие пользователи ПК, не задумывался, за счёт чего работают эти «волшебные» сочетания клавиш, позволяющие копировать и вставлять практически любые данные…
А работают они благодаря такой замечательной штуке, как буфер обмена. И сегодня мы с Вами разберёмся что это такое, где его искать и как оптимизировать работу с ним!
Что такое буфер обмена
Буфер обмена – это функция операционной системы (не только Windows), которая позволяет временно хранить определённый фрагмент данных (или даже целый файл) в специально отведённой области оперативной памяти. При этом, если размер файла больше, чем ОЗУ на компьютере, то в качестве дополнительного временного хранилища задействуется файл подкачки (если он активен).
Поместить какую-либо информацию в буфер обмена, предварительно выделив её, можно операциями копирования или вырезания. При этом копирование не затрагивает оригинал, помещая в буфер лишь его копию, а вырезание выполняет функцию перемещения оригинала, удаляя его. Получить же данные из буфера обмена можно командой вставки. Все вышеупомянутые команды можно вызвать несколькими способами:
- При помощи контекстного меню. Выделяем подлежащие копированию объекты и кликаем по ним правой кнопкой мыши. В открывшемся меню можно выбрать пункты «Копировать» и «Вырезать» или «Вставить».
- При помощи меню «Правка». Большинство программ Windows имеют в верхней части специальную строку меню. В этой строке, как правило, есть раздел «Правка», который содержит нужные нам команды.
- При помощи горячих клавиш. Наиболее быстрый способ взаимодействия с буфером обмена – использование клавиатурных комбинаций:
- CTRL+X (SHIFT+DEL) – «Вырезать»;
- CTRL+C (CTRL+Insert) – «Копировать»;
- CTRL+V (SHIFT+Insert) – «Вставить».
Ещё одной особенностью буфера обмена является то, что он один и тот же скопированный объект может хранить в нескольких форматах одновременно и выдаёт программе, запросившей его, тот формат, который либо сопоставлен программе по умолчанию, либо имеет наивысший приоритет и информативность.
Приведём простейший пример. Допустим, мы скопировали с сайта строку некоего форматированного текста. Если вставить этот текст в текстовый процессор, вроде Microsoft Office Word или OpenOffice Writer, то мы получим его оригинальную копию с сохранением всех особенностей форматирования (жирность текста, междустрочные отступы и т.п.).
Если вставить этот же фрагмент текста в текстовый редактор класса Блокнота, то сам текст сохранится, но его форматирование нет, поскольку Блокнот не поддерживает форматирование и будет запрашивать из буфера обмена именно неформатированную версию. Наконец, если попытаться вставить наш текст в некоторые графические редакторы, то они либо вообще ничего не вставят, либо вернут нам нашу надпись в растрированном виде!
Таким образом, мы видим, что простенькая, на первый взгляд, всем известная функция системы – не такая уж и простая, если вникнуть поглубже! Поэтому, давайте немного вникнем
Особенности буфера обмена в разных версиях Windows
В Windows 2000 и XP существовал способ просмотра и управления содержимым буфера обмена. Это была утилита под названием «Папка обмена». Запускалась она при помощи исполняемого файла по адресу C:\Windows\System32\clipbrd.exe (WIN+R – clipbrd.exe – ENTER):
Данная утилита позволяла не только просматривать, что находится в данный момент в буфере, но также давала возможность сохранить данные в файл (формат CLP), восстановить их из ранее сохранённого файла, очистить буфер и даже изменить формат данных для вставки (см. меню «Вид» на скриншоте выше).
Из последующих версий Windows утилита, почему-то, была удалена (хотя, при желании Вы можете скачать Clipbrd.exe и программа будет работать даже на Windows 10). Вместо неё осталось только небольшое консольное приложение по адресу C:\Windows\System32\clip.exe. Запустить его напрямую нельзя, но можно вызвать из Командной строки (WIN+R – cmd – ENTER):
Небольшая справка по команде «clip» (или «clip.exe») покажет нам, что команда не имеет никаких параметров. Она позволяет перенаправить содержимое буфера в файл (обычно в формате TXT) или считать его из ранее созданного файла посредством указания направления копирования при помощи треугольной скобки (clip > файл – запись в файл или clip < файл – чтение из файла). Вторым примером использования команды является копирование в буфер содержимого указанной перед вертикальной чертой папки (адрес_папки | clip).
Однако, есть и один секрет, который позволяет при помощи как раз последнего примера очистить буфер обмена (полезно, если там хранится большой файл). Для этого в Командной строке прописываем следующее: echo off | clip. Как видите, вместо адреса папки для копирования мы прописали стандартную консольную команду отключения вывода данных и поместили её в буфер. Поскольку команда не возвращает никаких данных, она просто очищает буфер обмена:
Чтобы каждый раз не «нырять» в Командную строку для очистки буфера, можно создать специальный ярлык, который будет делать это автоматически! Для этого в качестве объекта укажите следующую строку: C:\Windows\System32\cmd.exe /c «echo off | clip» и сохраните созданный ярлык. Учтите, что в Windows XP приведённый выше пример не будет работать, поскольку там вместо консольной утилиты CLIP используется рассмотренная выше графическая программа Clipbrd.exe, которая управляет буфером обмена!
Программы для работы с буфером обмена
Штатный буфер обмена Windows – вещь очень полезная. Но, увы, она не лишена и недостатков. Основным из них является то, что буфер может хранить в себе только один набор данных, который тут же перезаписывается новой информацией, если мы копируем ещё что-то. Также порой бывает нужно вставлять определённые фрагменты данных и хорошо бы было, если бы буфер мог сохранять их даже после перезагрузки ПК.
Подобные мысли посещали многих, поэтому на сегодняшний день имеется довольно много специализированных и комплексных решений по улучшению работы буфера обмена. И о некоторых из них хотелось бы рассказать более подробно.
Punto Switcher
Наверняка, многие из Вас знают (а, может, и используют) замечательную программу для автоматического переключения раскладки клавиатуры Punto Switcher. Однако, кроме переключения клавиатуры, она имеет ещё много полезных функций, в том числе, для расширения возможностей буфера обмена:
Во-первых, программа может реализовать мультибуфер с запоминанием всех текстовых фрагментов, которые были скопированы ранее. Во-вторых, она имеет модуль Дневник, который позволяет автоматически сохранять по дням всё, что вводилось с клавиатуры или копировалось проходило через буфер обмена. Дневник активируется в специальном разделе настроек весьма просто, а с мультибуфером придётся чуть сложнее…
Сначала нам нужно активировать опцию «Следить за буфером обмена» в разделе настроек «Общие» на вкладке «Дополнительные» (см. скриншот выше). Вторым шагом нужно настроить сочетание клавиш, которое будет открывать доступ к истории буфера обмена. Для этого идём в раздел настроек «Горячие клавиши» и назначаем сочетание для функции «Показать историю буфера обмена»:
Теперь по нажатию заданной нами клавиатурной комбинации будет появляться небольшое окошко по типу контекстного меню, которое будет хранить в себе текстовые фрагменты, копируемые ранее в буфер обмена, а также функцию очистки буфера. Для вставки нужного текста достаточно просто кликнуть по нему:
Использование Punto Switcher в качестве менеджера буфера обмена выгодно тем, что не нужно устанавливать никаких дополнительных утилит. Лично я настроил мультибуфер на всех компьютерах, с которыми работаю, поскольку это реально удобно. Однако, у данного решения есть и ряд минусов…
Во-первых, Punto Switcher не умеет сохранять фрагменты изображений. Во-вторых, не имеет удобного механизма восстановления содержимого буфера из предыдущих сессий (вытаскивание нужных записей из Дневника не в счёт). И, наконец, время от времени функция слежения за буфером обмена просто отключается по непонятным причинам… Поэтому, возможно, стоит посмотреть и на некоторые узкоспециализированные утилиты.
CLCL
Первым делом хочу обратить Ваше внимание на одну программу японского происхождения – CLCL:
Данный менеджер буфера обмена по праву считается одним из лучших, ведь сочетает в себе практически идеальный набор характеристик:
- малый размер (всего около 300 КБ со всеми плагинами!);
- поддержка и текстовых, и графических данных;
- наличие истории копирования;
- функция вставки часто используемых шаблонов;
- управление горячими клавишами.
Плюс ко всему, CLCL является портативной программой и для своей работы не требует установки. Это позволяет настроить её всего раз и затем переносить на любой компьютер, с которым Вы работаете, сохраняя доступ к привычным функциям, где бы Вы ни были.
Стоит, правда, отметить, что CLCL имеет несколько версий. Русскоязычная версия 1.1.2 (которая есть на нашем сайте), увы, не обновлялась с 2005 года. Новая же ветка программы (2.0 от 2015 года) существует только на английском и японском языках. От своей более ранней реализации новая CLCL отличается расширенным набором поддерживаемых форматов (русскоязычная поддерживала только точечные рисунки, обычный текст и Юникод), а также более структурированным меню. В остальном же особых изменений нет, поэтому можно с успехом пользоваться старой версией (пока я не русифицирую новую :))).
Ditto
Если Вы не боитесь целой кучи настроек и хотите выжать максимум из своего буфера обмена, то Вам может понравиться программа Ditto:
Ditto по своему функционалу стоит практически в одном ряду с CLCL. Он «из коробки» поддерживает все возможные форматы буфера обмена (правда, многие из них по умолчанию отключены), имеет функцию запоминания скопированных фрагментов и систему вставки пользовательских шаблонов. Кроме того, он может похвастаться:
- наличием поиска по сохранённым клипам (так здесь называются скопированные фрагменты);
- группирование клипов;
- импорт и экспорт сохранённых копий буфера обмена;
- синхронизация содержимого буфера по сети;
- поддержка работы с несколькими буферами обмена с переключением между ними.
В отличие от CLCL, Ditto имеет значительно большие размеры (около 15 МБ). Но и функционал, в принципе, намного шире. К тому же Ditto регулярно обновляется и имеет отдельные версии как под 32-битные, так и под 64-битные системы (в том числе и portable). Единственным недостатком программы для русскоязычного пользователя является не до конца русифицированный интерфейс, что в сочетании с большим количеством настроек может несколько сбить с толку неподготовленного новичка. Поэтому рекомендовать Ditto можно, скорее, уверенным пользователям ПК.
Clipdiary
Если Вы ищете программу с дружелюбным для простого пользователя русскоязычным интерфейсом и мощным функционалом, то стоит обратить внимание на Clipdiary:
Программа вообще-то платная, но русскоязычным пользователям доступна под бесплатной лицензией для некоммерческого использования. Чтобы снять ограничение на 30-дневный пробный срок зайдите в меню «Помощь» основного окна и кликните пункт «Активировать бесплатно». Откроется веб-страница, внизу которой Вам нужно будет нажать кнопку «Получить ключ», а затем скопировать полученный набор символов и вставить его в окошко регистрации Clipdiary.
После регистрации у Вас пропадёт отсчёт дней пробного периода и Вы без ограничений сможете воспользоваться всеми возможностями программы:
- поиск по базе данных сохранённых клипов;
- присвоение ярлыков клипам для быстрого доступа;
- защита базы данных паролем;
- выбор формата для вставки;
- удобная сортировка и представление клипов.
Clipdiary имеет довольно простой и удобный интерфейс, который сочетается с весьма неплохим функционалом. Поэтому данная программа подойдёт одинаково хорошо как новичкам, так и продвинутым пользователям. Кстати, у неё также есть portable-версия, которая может работать без установки. Единственным недостатком является ограничение на использование в коммерческих организациях.
ClipAngel
Напоследок хотелось бы упомянуть об ещё одной достойной отечественной реализации менеджера буфера обмена ClipAngel:
Создана программа была только в начале 2017 года, но за недолгое время своего развития уже успела «дорасти» до вполне серьёзного и удобного инструмента, который может конкурировать с именитыми аналогами! В арсенале программы имеется:
- автоматическое сохранение истории буфера обмена;
- возможность отмечать для быстрого использования наиболее часто употребляемые клипы;
- функция сравнения фрагментов клипов для выявления несоответствий;
- удобные функции сортировки списка истории и поиска по нему;
- выбор формата вставки клипа, а также его быстрый перевод онлайн.
ClipAngel поддерживает изначально все форматы буфера обмена и имеет весьма простой интерфейс настройки. Кроме того, в программу встроен небольшой текстовый редактор, который можно использовать для быстрой правки текста в сохранённых клипах! Для доступа же к наиболее востребованным функциям Вы можете задать собственные «горячие» клавиши.
ClipAngel не требует установки, а его размер в 3 МБ значительно меньше, чем у большинства аналогов. Единственный недостаток программы в том, что она написана на .NET Framework 4.5, поэтому потребляет сравнительно больше ресурсов ПК, нежели подобные приложения, созданные на языках более низкого уровня.
Выводы
Буфер обмена – очень удобная функция операционной системы. Однако, как мы могли убедиться, существует достаточно способов улучшить его, существенно расширив функционал и удобство. Все рассмотренные выше программы для управления историей буфера являются достойными кандидатами на роль менеджера буфера обмена, поэтому выбор любой из них будет верным решением!
Заведите на своём ПК небольшого «помощника» и забудьте о постоянных копированиях-вставках. Теперь все нужные фрагменты текста и картинок будут доступны Вам буквально в два клика!
P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.
Копирование в буфер обмена на компьютере и телефоне
Вам необходимо скопировать в буфер обмена текст, ссылку, таблицу, изображение или любой другой файл? Если это так, то вам стоит ознакомиться с тем, как не только копировать данные, но ещё вырезать и вставлять их. Кроме того, вы узнаете что из себя представляет буфер обмена и где он находится.
Содержание
- Что такое буфер обмена и для чего он предназначен
- Где находится буфер обмена на компьютере и в телефоне
- Копирование в буфер обмена на компьютере
- Сочетание горячих клавиш для работы с буфером обмена
- Как копировать в буфер обмена на телефоне
- Как скопировать фото и сделать снимок экрана
Что такое буфер обмена и для чего он предназначен
Итак, прежде чем копировать данные в буфер обмена стоит разобраться с тем, что он из себя представляет и для чего необходим. Необходимо понимать, как функционирует буфер и какие существуют операции для работы с ним. Поэтому, для начала будет правильным ознакомиться с важными теоритическими моментами.
Буфер обмена или clipboard — это промежуточное хранилище данных, которое находится в оперативной памяти компьютера, телефона или любого другого мобильного устройства. Это временное хранение активно используется программами и приложениями для того, чтобы копировать и переносить информацию.
Для работы с буфером обмена используются такие основные операции как: копировать, вырезать, вставить. Их можно использовать для того, чтобы скопировать текст, ссылку, таблицу, фото и другие файлы. При этом вставлять их можно сколько угодно раз, так как данные в буфере хранятся до тех пор пока их не заменят новыми.
Если выражаться точнее, то данные в хранилище не замещаются новыми, а идут друг за другом в той последовательности, в которой производились операции. При этом вы можете их посмотреть и получить к ним доступ. Данные можно найти в специальном системном файле, речь о котором пойдет чуть позже.
Где находится буфер обмена на компьютере и в телефоне
Вам интересно, где можно найти скопированные ранее в буфер обмена текст, ссылку, таблицу, фото, файлы и другие данные? Если да, то вам стоит знать, что для хранения этой информации в операционной системе существует особый файл. Он является системным и располагается в специально отведённом месте.
На компьютерах с операционной системой Windows этот файл называется «clipbrd.exe» или «clip.exe», а находится он в папке «System32». В ранних версиях системы, до Windows XP включительно, этот файл можно было открыть и посмотреть его содержимое. В более поздних версиях для этих целей вам потребуются специальные программы.
Что касается телефона, то на смартфонах с операционной системой Андроид буфер обмена находится в специальной области оперативной памяти. К сожалению, в большинстве случаев получить доступ к этому участку памяти у вас не получится. Правда есть модели, например у Samsung, где всё-таки можно посмотреть буфер обмена.
Кстати, для того чтобы очистить буфер с данными вам не потребуются знать специальные операции. Информация в нем располагается, как в стеке, то есть идёт друг за другом. Поэтому копирование в него новой информации, автоматически сдвигает старую. А это в свою очередь приводит к тому, что прежние данные удаляются.
Копирование в буфер обмена на компьютере
У вас по рукой компьютер и вам необходимо скопировать информацию в одном месте и вставить её в другом? Если это так, то для начала вам стоить знать, что на ПК существует два варианта работы с буфером обмена. Первый способ задействует мышь, а второй — клавиши клавиатуры и речь о нем пойдет разделом ниже.
Если сравнивать эти методы, то использование мыши намного упростит вам задачу. Здесь не придется запоминать специальные комбинации. Для того чтобы, например, скопировать, необходимые данные вам достаточно вызвать контекстное меню, нажав на правую кнопку мыши, и выбрать соответствующую операцию.
Допустим вам нужно скопировать фрагмент текста из одного документа в другой. Первое, что вы должны сделать — это выделить необходимую строчку и нажать на нее правой кнопкой мыши. Далее, в появившемся меню вам потребуется выбрать опцию «Копировать». Это приведет к тому, что строка попадет в буфер обмена.
Перед тем, как вставить текстовый фрагмент в другой документ, откройте его и поставьте курсор в нужное место. После чего нажмите на правую кнопку мыши и вызовите контекстной меню. Далее выберете пункт «Вставить» и ваша задача будет успешно выполнена. В том месте где стоял курсор появится ранее скопированная строка текста.
Сочетание горячих клавиш для работы с буфером обмена
Вас интересует вопрос о том, какие быстрые клавиши можно использовать для работы с буфером объема? Давайте разберемся с тем, какие команды отвечают за операции с временным хранилищем в операционных системах Windows, Mac OS и Linux. Узнаем как скопировать, вырезать и вставить нужные нам данные на компьютере.
«Ctrl» + «C» — эта комбинация быстрых клавиш в Windows позволит вам скопировать в буфер обмена текст, ссылку, файл и другие данные. Копировать нужную информацию можно также с помощью команды «Ctrl» + «Insert». На ПК с системой Mac OS копирование осуществляется сочетанием клавиш «Command» + «C».
«Ctrl» + «X» — это команда, которая поможет вам, например, вырезать фрагмент текста из предложения. Ее альтернативой будет сочетание быстрых клавиш «Shift» + «Delete», а на компьютерах Apple комбинация «Command» + «X». Стоит заметить, что при вырезании фрагмент текста будет полностью удален предложения.
«Ctrl» + «V» — это сочетание горячих клавиш, которое позволит вам вставить ранее скопированные или вырезанные данные. Аналогичной командой, позволяющей осуществить вставку будет комбинация клавиш «Shift» + «Insert». На устройствах с Mac OS вставлять данные можно с помощью сочетания «Command» + «V».
Как копировать в буфер обмена на телефоне
Итак, вам нужно скопировать текст и у вас есть Айфон или любой телефон с операционной системой Android, например, Самсунг или Хонор. С чего начать, чтобы переместить информацию из одного места в другое? Давайте разберемся, как работать с буфером обмена на смартфонах и других мобильных устройствах.
Стоит сразу упомянуть, что по принципу работы с буфером обмена телефон ничем не отличается от компьютера или ноутбука. Здесь есть те же самые операции: копировать, вырезать и вставить. Главное же отличие заключается в органах управления. Если на ПК это мышь и клавиатура, то на смартфоне — касание экрана пальцами.
Итак, давайте на примере копирования текста разберемся, как же перемещать данные в мобильном. Первое, что вам потребуется сделать это выделить нужный фрагмент текста. Для этого нажмите на строчку и удерживайте нажатие в течении нескольких секунд. В результате этих действий у вас появится всплывающее меню с операциями.
Задайте границы выделенной области текста, а в контекстном меню выберите операцию «Копировать». В этот момент информация попадет в буфер обмена. Далее перейдите в то место документа, где нужно вставить фрагмент текста. Поставьте курсор на нужную строчку и нажмите на него. В появившемся меню выберите опцию «Вставить».
Как скопировать фото и сделать снимок экрана
Если вам требуется сделать копию изображения или переместить фотографию из одного каталога в другой, то вы уже знаете, что для этого нужно. Чтобы решить подобного рода задачи вам достаточно воспользоваться уже знакомыми вам операциям копирования, вырезания и вставки. Их мы рассмотрели ранее.
Но бывают ситуации, когда вам необходимо получить изображение экрана монитора и вставить его, например, в графический или текстовый редактор. «Как получить фотографию с рабочего стола?» — спросите вы. На самом деле эта задача не такая и сложная. Для ее решения вам достаточно знать пару горячих клавиш.
«PrtScr» — это полезная клавиша, которая позволит вам сделать снимок экрана в Windows. При этом на картинке будет видно всё, что находится на рабочем столе. Комбинация «Command» + «Shift» + «3» позволяет сделать скриншот на Mac OS. Фотография попадает в буфер обмена, откуда ее можно вставить, например, в Word.
«Alt» + «PrtScr» — это комбинация клавиш, которая позволит вам получить изображение активного окна. То есть на снимке будет не весь рабочий стол, а только его часть. Скриншот на ПК Apple делается с помощью команды «Command» + «Shift» + «4», после чего вам необходимо нажать на пробел и выбрать нужное окно.
Качественная копия сайта делается прямо здесь
Скачайте и настройте
Цена сайта зависит от функционала. На сайте возможно поставить панель управления, настроить заявки, заменить текст и изображения.
Свяжитесь и уточните цену.
Оставьте заявку удобным для вас способом
Выберете удобный для вас способ связи
Оставьте заявку удобным для вас способом:
Выберете удобный для вас способ связи
Telegram
Если данная ссылка не активна, найдите нас, введя в поле поиска Telegram @sitecopypro
Заявка на почту
Выберете удобный для вас способ связи
Закажите шаблон удобным для вас способом
Выберете удобный для вас способ связи
Заявка на почту
Шаблон придёт вам на почту
Заявка отправлена
Ваша заявка отправлена! Ожидайте, в ближайшее время мы ознакомимся с ней. Если вы не хотите ждать, то свяжитесь с нами другим способом.
Помогите сервису
Ваша маленькая финансовая помощь — большой вклад в поддержание работы и в развитии сервиса.
Перевод на карту
Перевод можно произвести на номер карты, указанный ниже. Назначение платежа просьба оставить пустым.
Перевод на ЮMoney
Перевод можно произвести на кошелёк ЮMoney, указанный ниже. Назначение платежа просьба оставить пустым.
Номер скопирован
Спасибо вам за то, что решили поддержать сервис!
Заявка отправлена
Ваша заявка отправлена! Ожидайте, в ближайшее время мы ознакомимся с ней. Если вы не хотите ждать, то свяжитесь с нами другим способом.
Помочь скопировать?
Нужна помощь?
Вы самостоятельно хотите скопировать сайт или вам нужна помощь специалиста?
Успехов!
Надеемся на этом сайте вы найдете много полезной информации о том, как скопировать сайт. Если не получится сделать копию, то обращайтесь.