Что такое буфер обмена в компьютере кратко

Обновлено: 02.07.2024

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

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


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


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


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


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


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

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

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

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


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


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

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


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


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


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


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


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


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


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

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

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

Что такое буфер обмена

По сути, буфер обмена — это участок памяти. В нем сохраняется на время (пока мы не скопируем следующий файл) определенный файл, папка, участок текста, для вставки его в другой документ или место на диске.

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

Место нахождения буфера обмена в Windows XP

Если вы хотите наблюдать то, что находится на данный момент в буфере обмена в ОС Windows XP, выполните следующие действия:

Местонахождение буфера обмена в Windows XP.

clipbrd-exe

Хранение информации в Windows 7, Vista

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

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

Буфер обмена в Windows 7, Vista.

clip-exe

Журнал буфера обмена в Windows 10

bufer obmena windows 10

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

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

Первая программа, которая доступна для пользователей — CLCL. Это приложение не требует установки на компьютер.

Среди возможностей CLCL обратите внимание на следующие функции:

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

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

clcl

Comfort Clipboard — менеджер функции копирования

Для пока еще достаточно популярной версии Windows 7 есть специальная утилита для работы с копированием — Comfort Clipboard. Приложение поддерживает работу в операционных системах Windows 10, Windows 8.1, Windows 8.

Эта программа предоставляет пользователям следующие функции:

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

manager-b-o

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

Punto Switcher — программа для сохранения файлов и текста

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

Для этого выполните настройку приложения:

Окно настройки Punto Switcher.

punto switcher

На сегодняшний день ПО доступно для некоммерческого использования. Программа принадлежит компании Яндекс.

Чистка буфера обмена

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

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

Чтобы это предотвратить, необходимо очистить буфер обмена одним из двух способов:

  • перезагрузите компьютер;
  • скопируйте одно слово или предложение из любого текста.

Горячие клавиши при работе с текстом

Использование меню Проводника Windows для работы с буфером обмена.

копирование в блокноте

Основные способы копирования или вставки информации в Windows:

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

Выводы статьи

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

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

В этом разделе рассматриваются следующие вопросы:

Команды буфера обмена

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

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

Порядковый номер буфера обмена

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

Средства просмотра буфера обмена

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

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

В этом разделе рассматриваются следующие темы.

Средство просмотра буфера обмена Windows

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

Форматы отображения

Поддерживаются четыре формата вывода: CF _ дспбитмап, CF _ Дспметафилепикт, CF _ дсптекст и CF _ дспенхметафиле. Эти форматы отображения отображаются так же, как стандартные форматы: _ точечный рисунок CF, _ текст CF, CF _ метафилепикт и CF _ енхметафиле.

Формат просмотра владельца

Для владельца буфера обмена, который не использует обычные стандартные форматы буфера обмена, альтернативой формату представления является использование формата буфера обмена Owner-дисплея (CF _ овнердисплай).

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

Что такое буфер обмена на компьютере и как его найти

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

Что такое буфер обмена и как мы его используем?

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

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



Видите, как все просто? Подобные операции можно производить с абсолютно любыми файлами, включая видео, причем перемещать их из одного приложения (программы) в другое. Например, попробуем скопировать кусочек текста из простого блокнота Windows в буфер обмена, а затем вставить содержимое в документ, созданный в онлайн сервисе Google Таблицы:


При использовании clipboard важно иметь ввиду следующее. Помещать объекты (файлы, текст) в буфер обмена и затем извлекать их оттуда для вставки в нужную область можно неограниченное количество раз, но это касается только лишь последнего объекта, над которым вы совершаете подобное действие. Не совсем понятно?

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

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

Где буфер обмена в операционной системе Виндоус?

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

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

В Windows XP это clipbrd.exe, который расположен в системной папке по адресу:

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

В современных версиях ОС Виндоус разработчики изменили структуру работы буфера обмена. В той же Windows 7 и более поздних модификациях (8 и 10) такого файла нет. Вместо него за хранение данных в буфере обмена отвечает clip.exe, также находящийся в системной папке:


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

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

Как почистить буфер обмена на компьютере

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

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

Либо необходимо удалить какую-нибудь конфиденциальную информацию (например, пароль). Конечно, такие данные в буфер обмена операционной системы вообще не рекомендуется помещать. Для хранения паролей лучше использовать специальные программы.

Я, например, остановился на KeePass, имеющей свой буфер, информация в котором автоматически удаляется в том порядке, который вы сами можете настроить:


Но это так, к слову пришлось. А теперь продолжим непосредственно по теме. Для очистки буфера есть несколько способов, каждый из которых вполне по силам даже начинающим пользователям. Причем они доступны для всех последних версий Windows (7, 8, 10).

Замена содержания буфера обмена

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


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

Очистка clipboard силами ОС Виндовс



Запускаем командную строку от имени администратора. Для этого размещаем курсор на найденной системой ссылке, кликаем правой кнопкой мышки и из контекстного меню выбираем нужный пункт:


В результате должно появиться диалоговое окно черного цвета. Туда необходимо внести следующую команду:

Получится вот так:



Затем в строку расположения объекта вписываете путь до утилиты и нужную команду по очистке буфера обмена:

Это будет выглядеть следующим образом:



Как очистить буфер средствами стороннего софта?

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

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

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


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

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

Что такое буфер обмена

комбинации клавиш для работы с буфером обмена

Основные комбинации клавиш для работы с буфером обмена.

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

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

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

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

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

Где находится буфер обмена

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

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

Поэтому не стоит рассчитывать на буфер обмена как на надежное хранилище данных. Поскольку при выключении компьютера (по любой причине) содержимое буфера обмена будет полностью удалено.

Как пользоваться буфером обмена

копирование текста в буфер обмена

Также вы можете использовать комбинации клавиш. Для копирования данных существуют комбинации Ctrl-C и Ctrl-Ins , для вырезания данных Ctrl-X и Shift-Del , и для вставки данных Ctrl-V и Shift-Ins .

Читайте также: