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


Windows 7: как посмотреть буфер обмена

Миниатюра В рассматриваемом руководстве подробно описаны способы, каким образом посмотреть содержимое буфера обмена (БО), как почистить БО в Windows 7 и что БО из себя представляет.

Что это за функция «буфер обмена» и зачем он нужен?

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

Для внесения чего-либо в БО необходимо в вызванном правой кнопкой мышки меню нажать “Копировать” / “Вырезать”. Для извлечения данных из буфера обмена требуется кликнуть в том же меню на “Вставить”.

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

  1. “Копировать” – «Ctrl» и «C»;
  2. “Вырезать” – «Ctrl» и «X»;
  3. “Вставить” – «Ctrl» и «V».

Необходимо отметить, что при внесении в буфер обмена новых данных, предыдущие стираются.

Сам БО скрыт от пользователя, и он может надеяться лишь на свою память, т.к. что в нем содержится, обычно просмотреть он не имеет возможности.

Как открыть и посмотреть, что содержится в буфере обмена?

В Windows 7 компания Майкрософт решила обойтись без приложения «clipbrd.exe», позволяющего посмотреть, что содержится в БО. Однако, при необходимости имеется возможность взять это приложение из Windows XP и поставить его в Windows 7. Это легко можно выполнить с помощью флешки.

Место расположения данного приложения в XP-шке в папке: \Windows\system32\clipbrd.exe.

Clipbrd в папке system32При отсутствии компьютера с Windows XP программу необходимо взять с ее диска для установки ОС. Находится она в папке «I386». Здесь требуется найти «CLIPBRD.EXE» и вставить ее на рабочий стол Windows 7. Далее с помощью, например, WinRAR, требуется разархивировать ее.

CLIPBRD.EXE в папке I386Можно извлечь архив и средствами Windows 7, для этого следует нажать одновременно кнопки  и «R» и набрать в появившемся в окне “Выполнить” – «cmd».

Запуск командной строкиПри этом откроется меню, в котором требуется набрать 2 команды: «cd desktop» и «expand clipbrd.ex_clipbrd.exe».

Выполнение команд в консоли«cd desktop» перемещает командную строку на рабочий стол, а «expand clipbrd.ex_ clipbrd.exe» достает из архива «CLIPBRD.EXE».

Рекомендуется при отсутствии опыта использования командной строки, воспользоваться каким-нибудь архиватором, либо оболочкой для ОС «Total Commander».

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

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

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

Далее рассмотрим примеры таких программ.

CLCL.exe

Логотип CLCLCLCL.exe – это приложение способно сохранять 30 последних скопированных данных. Также достоинством данного приложения является отсутствие необходимости в инсталляции. Программу нужно только открыть и внизу на панели задач в зоне систем-трея отобразится значок похожий на скрепку.

CLCL в трееЗапустившись, приложение отобразит двойное окно.

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

Как удалить все данные из буфера обмена?

Если требуется удалить все данные из буфера обмена, то следующие методы позволят это выполнить без особого труда:

  1. Приложением «CCleaner». Требуется открыть его и нажать на закладку “Очистка”. Далее открыть закладку “Windows” и пункте “Система” активировать строку “Буфер обмена”. Далее кликнуть “Очистка”.Очистка буфера обмена в CCleaner
  2. Средствами Windows 7. Необходимо создать ярлык на рабочем столе для очистки БО. При его создании, в поле, где требуется указать нахождение объектов, набрать «cmd /c echo off | clip».Создание ярлыка для очистки буфера
  3. Имя ярлыку пользователь должен придумать любое на свое усмотрение.

Указываем имя ярлыкаВыполнив эти операции, на рабочем столе отобразится ярлык, который позволит оперативно выполнять очистку БО.

Похожие записи:

windowstune.ru

Эффективная работа с буфером обмена Windows

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

Напомню стандартные приёмы работы с буфером обмена Windows:

  • Ctrl+C или Ctrl+Insert – скопировать выделенный фрагмент в буфер обмена
  • Ctrl+X или Shift+Delete – вырезать, т.е. скопировать в буфер обмена и удалить из текста
  • Ctrl+V или Shift+Insert – вставить последний скопированный элемент

Также можно пользоваться контекстным меню правой кнопки мышки:

Контекстное меню Copy Paste

Я лично пользуюсь только комбинациями с «Insert», по-моему так намного удобнее, может просто не все знают об этом. На некоторых клавиатурах на кнопках «C», «V», «X» уже нанесены обозначения, чтобы не забыть как ими пользоваться. Но у стандартного метода есть недостаток, ведь вставить можно только последний скопированный элемент, т. е. каждый новый текст затирает предыдущий.

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

Скачайте и установите программку ClipDiary.

Скачать ClipDiary

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

Суть работы простая – всё что вы скопируете в буфер обмена с помощью кнопок «Ctrl+C» или «Ctrl+Insert» сохраняется в списке и называется «клипами», причём даже после перезагрузки компьютера. В любой момент можно открыть список и найти ранее скопированный текст. Я перерыл несколько похожих программ, но ClipDiary оказалась единственной, которая умеет вставлять данные из истории с помощью горячих кнопок. Другие программы лишь открывали весь список, из которого можно было что-то выбрать, а потом вручную вставить куда надо.

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

Выглядит это вот так:

клипы

В списке перечислены все последние скопированные элементы. Свои горячие клавиши я настроил вот таким образом:

горячие клавиши

Соответственно, я могу перемещаться по истории с помощью комбинаций «Ctrl+Shift+Insert» и «Ctrl+Shift+Home», пока не увижу в маленьком всплывающем окошке текст, который я ранее копировал, например фразу «Я лично пользуюсь только»

Вставка предыдущего элемента из списка

А с помощью кнопок «Ctrl+Shift+End» я могу зайти в буфер обмена, открыв главное окно программы.

Посмотрите это небольшое видео:

С помощью горячих кнопок «Ctrl+I» можно очистить буфер обмена Windows, при этом не очищая список Clipdiary. Чтобы очистить и его, нужно открыть окно программы, выделить всё что там есть и нажать красный крестик или «Ctrl+Del». Если список окажется на нескольких страницах, то проделайте это несколько раз.

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

История буфера обмена в Microsoft office

В программы пакета Microsoft Office Word, Excel, PowerPoint включена возможность работы с расширенным буфером обмена. Чтобы активировать его нужно кликнуть на едва заметную кнопочку вот здесь:

Расширенный буфер обмена Microsoft Office

и тогда попадаете в дополнительное окошко, в котором находится буфер обмена. Здесь сохраняются последние 20 скопированных элементов, в том числе и скриншоты.

история

Вставлять оттуда можно только вручную, а список очищается после закрытия программы. Также можно очистить буфер обмена по кнопке «Очистить всё». Кстати, работать с документами Word и Excel можно онлайн.

Вот такие пироги :) Надеюсь вам понравилась идея, так поделитесь статьёй с друзьями в социальных сетях!

it-like.ru

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

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

Что такое буфер обмена и для чего он предназначен.

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

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

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

Как видим, все просто: Вы очень часто им пользуетесь, просто об этом не знали.

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

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

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

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

Скопировать в буфер: Ctrl + C (или Ctrl + Ins).

Вырезать в буфер обмена: Ctrl + X (или Shift + Del).

Вставить из буфера: Ctrl + V (или Shift + Ins).

Рекомендую также прочитать:

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

У операционных систем семейтва Windows есть специальное приложение, выполняющее роль буфера. Находится буфер обмена Windows по адресу C:WINDOWSsystem32 и имеет название clipbrd.exe (адрес C:WINDOWSsystem32 может иметь другое название диска, в зависимости от того, где установлена операционная система).

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

Рис 1. Путь к буферу обмена у Windows.

Для примера покажу,  как работает буфер обмена.

Копирую абзац статьи:

Рис 2. Как работает буфер обмена.

Дальше запускаю clipbrd.exe.

Рис 3. clipbrd.exe.

Как видно с рисунка информация скопирована в буфер обмена.

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

Чтобы очистить буфер обмена в windows необходимо запустить clipbrd.exe т кликнуть по кнопке Удалить (на рисунке обведена красным цветом). Подтверждаем. Все готово.

Рис 4. Удаление информации с буфера

xiod.ru

Как работает буфер обмена в Windows / Хабр

Недавно у меня появилась возможность выполнить отладку буфера обмена в 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 об этом.

habr.com

Буфер обмена Windows. Программы для расширения возможностей

Буфер обмена Windows. Программы для расширения возможностей буфера

[contents]

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

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

Как проверить пинг через командную строкуЧитайте также: тест интернета черех командную строку — ping

Тем не менее, буфер обмена Microsoft Office значительно упрощает работу, причем разработчики постарались, чтобы буфер обмена был доступен у ряда офисных приложений. Так, например, скопировав несколько фрагментов текста в Word, вы сможете вставить их в таблицу Excel. Для того, чтобы воспользоваться расширенным буфером обмена офиса достаточно при работе с документом (например, в Word) открыть справку, которая отобразится справа. Кликнув мышкой по надписи «Справка Word«, высветится список доступных разделов. Отыщите раздел «Буфер обмена» и нажмите на него. Также можете просто нажать сочетание клавиш Ctrl+C+C (дважды кликнув по клавише «С» с зажатым «Ctrl«). Теперь при каждом копировании в правом окошке будут отображаться скопированные фрагменты, дважды кликнув по которым вы вставите их в текст. Для вставки объекта в другом офисном приложении, также откройте раздел «Буфер обмена» и выберете нужный объект.

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

Clipboard Recorder

Clipboard Recorde

Программа Clipboard Recorder позволяет существенно расширить возможности буфера обмена при работе в офисных приложениях. Как и большинство подобных утилит Clipboard Recorder после запуска будет иметь значок в системном трее. При этом программа будет запоминать все скопированные объекты, и помещать их в свой перечень (Floating List). Достаточно кликнуть по любому скопированному объекту, чтобы произвести его вставку в текст. Утилита умеет сохранять форматирование скопированного фрагмента текста, а также позволяет копировать изображения и другие типы данных. Поддерживаемые типы данных программы можно просмотреть в ее настройках (Optons). Ко всему прочему все скопированные в буфер обмена данные можно передавать по локальной сети другому компьютеру. Недостаток утилиты Clipboard Recorder, как и стандартного буфера обмена Microsoft Office, является отсутствие возможности работы с файлами и папками.

CLCL

CLCL

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

Как увеличить время работы ноутбука от батареи?Читайте также: Как увеличить время работы ноутбука от батареи?

ClipMate

ClipMate

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

Конечно перечисленные программы не единственные в своем роде – их великое множество, и все они достойны внимания.

minterese.ru

Как увеличить буфер обмена Windows

Буфер обмена представляет собой временное хранилище и позволяет компьютеру «запоминать» информацию для переноса её в другое приложение. Благодаря этому доступна операция copy/paste, существенно облегчающая жизнь пользователя. Но к сожалению, стандартный клипборд Windows несовершенен и способен вмещать в себя только один объект сразу.

Как увеличить буфер обмена

Как увеличить размер буфера обмена в Windows?

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

Обзор популярных утилит

ClipMate

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

ClipMate

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

Global Clipboard

Работает с буфером обмена в версиях Windows 7, XP, 8, 10, экономно расходуя ресурсы системы. Это простое приложение по умолчанию сохраняет 25 объектов, но в настройках можно задать своё число до тысячи. Фрагменты легко просмотреть в увеличенном виде и подправить перед вставкой. Изображения можно вращать и отражать, текст — редактировать и запоминать форматирование. Софт платный, но есть пробная версия на 30 дней.

Global Clipboard

Ditto

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

Ditto

После установки значок программы появится в нижнем правом углу, на панели задач, благодаря чему к нему можно получить быстрый доступ. Есть возможность задать для Ditto «горячие клавиши». Поддерживает все серии Windows.

CLCL

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

ВАЖНО. Софт бесплатный и совместим со всеми, даже старыми версиями — Windows 2000 и Windows Vista. Имеется портативная версия, не требующая установки. 

ClipDiary

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

ClipDiary

Увеличение файла подкачки

Чтобы расширить объёмы памяти буфера обмена в Windows (например, вы копируете графику, которая много весит, и система выдаёт ошибку), стоит увеличить файл подкачки. Для этого достаточно перейти в «Панель управления» — «Администрирование» — «Управление компьютером» и в нужном поле задать величину, в два раза выше, чем показатель ОЗУ. Увеличить файл подкачки

Если в дальнейшем вы захотите сбросить эти настройки — просто введите нулевые значения.

Приходилось ли вам усовершенствовать работу буфера обмена Windows и каким способом? Поделитесь своими знаниями в комментариях.

nastroyvse.ru

Где находится буфер обмена? Как посмотреть и удалить файлы из буфера?

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

Буфер обмена — что это?

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

Что можно скопировать в буфер обмена?

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

Как сохранять в буфер обмена?

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

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

Работа с clipboard возможна с помощью специальных «горячих» сочетаний клавиш:

  • Работа с буфером обмена в WindowsCtrl + A — выделить всю область страницы.
  • Ctrl + C — скопировать выделенную информацию в буфер обмена.
  • Ctrl + V — вставить скопированную информацию из буфера обмена.
  • Ctrl + X — вырезать выделенную информацию.

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

Как найти буфер обмена?

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

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

  • Windows XP. В этой операционной системе промежуточное хранилище временных данных находится в системной папке, которую можно найти двумя способами:
  1. напрямую по адресу C:/WINDOWS/system32;
  2. через меню «Пуск»: войдите в меню и откройте командную строку одновременным зажатием клавиш «Windows» (расположена между клавишами «fn» и «alt») + R . В открывшемся окне необходимо ввести « clipbrd.exe» и нажать «ОК».

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

  • ​Буфер обмена в Windows 7 и Windows 8. В этих операционных системах имя промежуточного хранилища было изменено на «clip.exe». Расположение файла осталось прежним, а вот возможности открыть его больше нет.
  • Буфер обмена в Windows 10. Как уже говорилось, в последних версиях ОС Windows название изменено на «clip.exe». Но как и в предыдущих двух версиях открыть и посмотреть его юзерам возможности не предоставляется. Разве что используя специальные виджеты, скачать которые можно на разных интернет-ресурсах совершенно бесплатно. Такие дополнения позволяют посмотреть не только последнюю историю сохранения информации, но и за определенный период (день, неделя, а в некоторых и за целый месяц).

Как очистить буфер обмена в ОС Windows?

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

Удалить информацию из clipboard можно с помощью командной строки. Для этого, вызвав ее (о том, как это сделать говорилось уже выше), необходимо ввести следующую команду: C:\Users > echo off:clip и нажать клавишу Enter. После этого начнется безвозвратная очистка временного хранилища файлов.

Если вы часто очищаете clipboard, для своего же удобства на рабочем столе можно создать ярлык, в расположении которого указав эту комбинацию: cmf c «echo off | clip». После запуска такого ярлыка вам сразу откроется окно для очистки хранилища временных файлов.

komp.guru