Копируйте изображения и текст с одного компьютера на другой с помощью облачного буфера обмена. Вы можете не только вставлять данные из журнала буфера обмена, но и закреплять элементы, которые вы используете постоянно.
Чтобы найти историю буфера обмена, нажмите клавиши Windows+V. В истории буфера обмена можно врезать и закрепить часто используемые элементы, выбрав отдельный элемент в меню буфера обмена. Закрепление элемента позволяет не удалять его из истории буфера обмена, чтобы у вас было место для новых элементов.
Совместное Windows на другом устройстве
-
Выберите Начните > Параметры > система > буфер обмена.
-
Выберите Синхронизировать на разных устройствах и вкл.
-
Выберите Автоматически синхронизировать текст, который я копую. Функция синхронизации привязана к вашей учетной записи Майкрософт или рабочей учетной записи, поэтому используйте одни и те же учетные данные для входа на всех устройствах.
Справка по истории буфера обмена
Открытие параметров буфера обмена
Копируйте изображения и текст с одного компьютера на другой с помощью облачного буфера обмена. Вы можете не только вставлять данные из журнала буфера обмена, но и закреплять элементы, которые вы используете постоянно.
Чтобы открыть журнал буфера обмена в любое время, нажмите клавишу с логотипом Windows +V. В истории буфера обмена можно врезать и закрепить часто используемые элементы, выбрав отдельный элемент в меню буфера обмена. Закрепление элемента позволяет не удалять его из истории буфера обмена, чтобы у вас было место для новых элементов.
Совместное Windows 10 буфера обмена
-
Выберите Начните > Параметры > система > буфер обмена.
-
В области Синхронизация между устройствамивыберите В. Функция синхронизации привязана к вашей учетной записи Майкрософт или рабочей учетной записи, поэтому используйте одни и те же учетные данные для входа на всех устройствах.
Справка по истории буфера обмена
Открытие параметров буфера обмена
Время на прочтение
12 мин
Количество просмотров 46K
Недавно у меня появилась возможность выполнить отладку буфера обмена в 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 10» рассмотрим расширенные возможности буфера обмена, а также создание снимков экрана и их редактирование «на лету».
Практически каждый пользователь Windows 10 сталкивается с такой функцией, как буфер обмена. Он позволяет быстро копировать данные в различных приложениях, избегая рутинной работы. Снимки экрана также упрощают задачу, помогая сохранить информацию с экрана компьютера в формате изображения для дальнейшего использования. Например, для заметок, социальных сетей, документов или медиаконтента.
Буфер обмена
Что такое буфер обмена? Это своего рода промежуточное хранилище данных, целью которого является перенос или копирование информации между различными приложениями, используя при этом стандартные функции операционной системы Windows — «Копировать» (Ctrl + C), «Вырезать» (Ctrl + X), «Вставить» (Ctrl + V).
При использовании обычного буфера обмена вы можете вставить только последние скопированные данные. Те данные, которые вы копировали ранее, не хранятся в буфере обмена. Но если вы пользователь Windows 10, то можете воспользоваться расширенным буфером обмена, также его называют мультибуфером обмена. По умолчанию функция отключена.
Чтобы воспользоваться функционалом, нажмите на кнопку «Пуск». В «Параметрах» надо выбрать кнопку «Система», а в ней — «Буфер обмена». Переведите ползунок в положение «Вкл». Там же можно настроить синхронизацию с другими устройствами, где активирована ваша учетная запись Microsoft. Для этого надо залогиниться под тем аккаунтом, который вы хотите использовать, и включить автоматическую синхронизацию.
Вы также можете включить буфер обмена быстрой комбинацией клавиш «Win + V».
Если ранее у вас не был активирован расширенный буфер обмена, система сообщит вам об этом в отдельном окне и предложит включить данный функционал.
После нажатия на кнопку «Включить» в окне появятся ранее скопированные данные, если таковые были, либо буфер будет чист.
В буфере обмена вы можете видеть все скопированные данные, включая изображения. Использовать их можно в любое время и в любом порядке. Размер файла в буфере (текст, HTML и изображения) ограничен 4 МБ. Стоит помнить, что буфер обмена очищается при выключении/перезапуске ПК. В этом случае в нем останутся только закрепленные блоки данных. Кроме того, при переполнении буфера (если в нем окажется более 25 элементов) журнал очищается автоматически, удаляя в первую очередь самые старые данные, если они не были закреплены.
Для выбора необходимых данных достаточно найти их в буфере и выбрать левой кнопкой мыши. У каждого элемента есть меню, в которое можно попасть, нажав на «…» в соответствующем блоке.
Меню дает возможность удалить сохраненные ранее данные или закрепить для того, чтобы информация всегда находилась в начале списка мультибуфера. Это удобно, когда у вас много скопированной информации и не хочется искать необходимую для вставки.
Практическое применение мультибуфера обмена
В обычном буфере обмена для копирования множества данных вам наверняка пришлось бы не раз переключиться на окно источника информации, а затем на окно приложения, куда эти данные необходимо вставить. Нетрудно запутаться в порядке действий или подустать.
При использовании расширенного буфера обмена вам достаточно в окне источника данных скопировать сразу все необходимые фрагменты, после чего перейти в окно приложения, куда надо вставить данные, и в необходимом вам порядке использовать скопированные фрагменты.
Для примера, на следующих снимках экрана была использована статья из Википедии. По кусочкам скопированы блок со значением слова, а также разделы «География» и «Экономика».
Вот как выглядит расширенный буфер обмена после вызова «Win + V».
После копирования переходим в необходимое приложение и по очереди вставляем данные. Можно увидеть, что копируется даже форматирование текста и ссылки. Аналогично можно использовать копирование и вставку в фоторедакторе или в некоторых видеоредакторах.
Если вы работали за чужим компьютером, не забудьте очистить историю в буфере обмена. Особенно это важно, если там могли остаться ваши пароли, данные банковских карт или другая конфиденциальная информация. Для этого кликните по меню «Пуск», зайдите в «Параметры», выберите «Система» и «Буфер обмена», найдите пункт «Очистить данные буфера обмена». Можно удалить историю гораздо быстрее, если нажать комбинацию клавиш «Win + V» и выбрать команду «Очистить всё» в выпадающем меню.
Потенциал нового буфера обмена безграничен и может использоваться повсеместно: в работе, хобби или для общения в соцсетях. Более того, его возможности предоставляют нам бесплатно, чем не могут похвастаться многие сторонние приложения.
Расширенные снимки экрана и их редактирование на лету
При помощи снимка экрана можно сохранить в любом формате изображения для вставки в редакторы, соцсети и документы. В Windows для создания снимка экрана принято использовать клавишу Print Screen, которая находится возле цифрового блока клавиатуры.
Прежде нажатие на кнопку копировало снимок экрана в буфер обмена, откуда он мог быть вставлен в какой-либо редактор. В памяти ПК он не сохранялся по умолчанию. В редактор вставлялось полностью все изображение, даже если вам нужна была только часть снимка. Как следствие, снимок экрана приходилось обрезать в фоторедакторе, сохранять — и вновь забивать им буфер обмена.
Windows 10 позволяет нам расширить возможности работы со снимками экрана и делает это быстрее, удобнее и практичнее. ОС с лихвой избавляет от необходимости использовать сторонние приложения.
Снимок экрана конкретного окна
Предположим, в разных местах экрана у вас открыто несколько окон различных приложений. Все они имеют разные размеры. Но вам нужен снимок одного конкретного окна. Для этого достаточно нажать мышкой на необходимое окно, чтобы сделать его активным. А затем с помощью комбинации «Alt + Print Screen» получить снимок выбранного окна. Изображение попадает в буфер обмена.
Снимок всего экрана, который сразу сохраняется в папку изображений
На случай, если вам необходимо сделать снимок всего экрана и сразу сохранить в память вашего ПК, минуя вставку в редакторы, достаточно использовать комбинацию «Win + Print Screen».
Найти ваш снимок экрана вы сможете в папке «Снимки экрана», которая в свою очередь находится в папке «Изображения».
Это крайне удобный и очень быстрый способ зафиксировать содержимое экрана, не тратя время на редакторы и придумывание имени файла.
Снимок экрана и его редактирование на лету
Windows 10 оснащена быстрым редактором снимков экрана, что позволяет не отвлекаться на сторонние редакторы. Этот редактор позволяет выбрать область снимка экрана, после чего предложит отредактировать его. Воспользуйтесь комбинацией клавиш «Win + Shift + S».
После нажатия этой комбинации, экран немного потемнеет, обозначая, что вы находитесь в режиме быстрого снимка экрана. Вверху по центру будут находиться кнопки выделения зоны будущего снимка экрана: «Прямоугольник», «Лассо» (возможность обвести любую фигуру для копирования), «Окно» (аналог комбинации «Alt + Print Screen»), «Весь экран». И кнопка отмены — на случай если вы вовсе передумали делать снимок экрана. По стандарту стоит последний использованный инструмент или «Прямоугольник», если вы впервые используете эту панель.
Как только вы сделали снимок экрана, в углу вашего трея (там, где находятся часы) появится уведомление о том, что снимок экрана скопирован в буфер обмена.
Если сразу нажать на уведомление, откроется редактор снимка экрана. Кроме того, редактор можно открыть, запустив программы «Ножницы» или «Набросок на фрагменте экрана». Их можно найти в списке «Все программы». Редактор «Ножницы» позволяет сделать снимок экрана с задержкой до 5 секунд.
В верхней панели вы можете видеть инструменты для обработки снимка экрана.
Среди них:
- Рукописный ввод
- Ручка
- Карандаш
- Маркер
- Ластик
- Линейка/Транспортир
- Обрезка
Это минимально необходимый инструментарий для выделения необходимой информации. В примере ниже текст выделен полупрозрачным желтым маркером, а логотип обведен синей ручкой. Вы можете регулировать толщину линий и цвет, нарисовать отрезок или окружность, либо вырезать часть изображения.
В правой части верхней панели есть кнопки для работы с готовым снимком экрана. Среди них:
- Сохранить в память ПК
- Скопировать в буфер обмена (можно использовать стандартную комбинацию клавиш)
- Поделиться (отправить снимок экрана в какое-либо приложение)
- Меню «…»:
- Открыть файл (в этом редакторе можно отредактировать ранее сохраненные снимки экрана и другие изображения)
- Печать
После редактирования и сохранения снимка экрана в памяти ПК или в буфере обмена, можно сразу продолжить работу в вашем приложении.
Мы проверили лишь некоторые способы работы с буфером обмена и снимками экрана в Windows 10. Использование расширенного буфера избавит вас от бесконечных переключений между окнами приложений. Для обработки снимков экрана и работы с буфером обмена не придется запускать сторонние приложения, что дополнительно увеличит продуктивность. И эти возможности предоставлены бесплатно и всегда находятся под рукой. Также вы можете использовать мультиоконность и множественные виртуальные рабочие столы. О них мы рассказывали в данной статье.
Что такое буфер обмена и как посмотреть что в нём находится?
На чтение 4 мин Просмотров 36.5к. Опубликовано
Разберёмся, где находится буфер обмена в операционной системе, а также расскажем, какими средствами его можно открыть. Рассмотрим как системные варианты, так и сторонние утилиты. В конце определим, можно ли использовать этот инструмент как временное хранилище для важных данных.
Содержание
- Как открыть буфер обмена на компьютере
- Буфер обмена что это такое?
- Где находится буфер обмена?
- Как посмотреть что находится в буфере обмена
- В Windows 10
- В Punto Switcher
- Как долго там хранится информация
Как открыть буфер обмена на компьютере
Буфер обмена в Windows представляет собой отдельный EXE-файл, который невозможно открыть стандартными средствами системы – о том, как просмотреть его содержимое, и пойдёт речь далее.
Буфер обмена что это такое?
Буфер (clipboard) в компьютере – часть оперативной памяти устройства, в которой хранятся данные, скопированные пользователем. Любое нажатие на кнопку «Копировать» или использование комбинации Ctrl + C (Ctrl + X тоже) ведёт к тому, что ПК начинает «удерживать в уме» выбранную информацию.
Хранилище содержит в себе последнее скопированное значение – как только пользователь скопирует другой файл, предыдущие данные из буфера обмена будут удалены.
Где находится буфер обмена?
Описываемая часть ОЗУ на ноутбуке или на ПК с Виндовс располагается по адресу C:\Windows\System32 и называется «clip.exe» – в других директориях он находиться не может. Пользователю 7, 8, 8.1 и 10-й версии OS (в ранних сборках) нельзя просматривать содержимое или очищать его (только копировать в буфер обмена). Чуть больше повезло владельцам старой Windows XP – найти системный буфер обмена среди объектов можно по названию «clipbrd.exe», файл может быть беспрепятственно отредактирован.
Удалять, перемещать, включать, выключать и переименовывать это небольшое хранилище также нельзя.
Как посмотреть что находится в буфере обмена
Посмотреть содержимое буфера обмена в Win 7 и 8 в данный конкретный момент можно только с помощью сторонних программ. Конечно, последний скопированный текст можно вставить в Word, а картинку – в Paint, однако историю файлов достать из системы не удастся. С Windows 10 чуть проще – в ней есть встроенное средство, с помощью которого можно легко открыть буфер обмена на любом компьютере.
В Windows 10
Пользоваться предложенной ниже инструкцией смогут пользователи с Windows 10 версии 1809 и новее. Воспользуйтесь сочетанием клавиш Win + V. Объекты, которые вы когда-то решили скопировать в буфер обмена, отсортируются по дате и будут доступны для использования. Нажатие на любой объект скопирует его и поднимет на вершину списка. Любую запись можно закреплять через «булавку» – так она не удалится при очистке. Картинки сохраняются в форме превью.
Если комбинация не работает, нужно предварительно включить буфер обмена:
- Нажмите Win + X, чтобы вызвать контекстное меню «Пуск», перейдите в «Параметры».
- Перейдите в блок «Система».
- Разверните одноимённую строчку, активируйте опцию работы с журналом (обратите внимание на скриншот).
Если системный инструмент показался неудобным (или отсутствует в используемой версии ОС), переходите к следующему методу – в нём разберём удобное приложение.
В Punto Switcher
Punto Switcher – маленькая программа, предназначенная для быстрого переключения между раскладками клавиатуры. Дополнительно этот инструмент хранит около 30 текстовых объектов, скопированных пользователем – все эти данные можно быстро извлекать из буфера обмена.
Используйте по следующей инструкции (ссылка на скачивание по названию):
- Откройте «Настройки» программы (если она запущена, иконка помещается в область системных уведомлений), в блоке «Общие» перейдите во вкладку «Дополнительные» и активируйте пункты «Следить за…» и «Сохранять историю после перезагрузки ПК».
- Кликните правой кнопкой по иконке «Punto Switcher» в системном трее, разверните соответствующую вкладку и нажмите на «Просмотреть историю», чтобы войти в список.
- Выберите текст нажатием – он копируется и становится доступен для быстрой вставки.
Switcher распространяется бесплатно, не оказывает серьёзного влияния на производительность системы.
Как долго там хранится информация
Информация из буфера обмена хранится до тех пор, пока пользователь не решит поместить в clipboard другие данные. Перезагрузка системы также приводит к очистке хранилища. Подобное хранилище – временное по своему предназначению. Оно нужно исключительно для быстрого переноса данных. «Копирование» и «вставка» всегда должны идти рядом – иначе важные сведения можно легко потерять.
Работаю системным администратором 10 лет. Программирую на PHP и Python. Способен объяснить технические моменты понятным языком.
Копируйте изображения и текст с одного компьютера на другой с помощью облачного буфера обмена. Вы можете не только вставлять данные из журнала буфера обмена, но и закреплять элементы, которые вы используете постоянно.
Чтобы найти историю буфера обмена, нажмите клавиши Windows+V. В истории буфера обмена можно врезать и закрепить часто используемые элементы, выбрав отдельный элемент в меню буфера обмена. Закрепление элемента позволяет не удалять его из истории буфера обмена, чтобы у вас было место для новых элементов.
-
Выберите Начните > Параметры > система > буфер обмена.
-
Выберите Синхронизировать на разных устройствах и вкл.
-
Выберите Автоматически синхронизировать текст, который я копую. Функция синхронизации привязана к вашей учетной записи Майкрософт или рабочей учетной записи, поэтому используйте одни и те же учетные данные для входа на всех устройствах.
Справка по истории буфера обмена
Открытие параметров буфера обмена
Копируйте изображения и текст с одного компьютера на другой с помощью облачного буфера обмена. Вы можете не только вставлять данные из журнала буфера обмена, но и закреплять элементы, которые вы используете постоянно.
Чтобы открыть журнал буфера обмена в любое время, нажмите клавишу с логотипом Windows +V. В истории буфера обмена можно врезать и закрепить часто используемые элементы, выбрав отдельный элемент в меню буфера обмена. Закрепление элемента позволяет не удалять его из истории буфера обмена, чтобы у вас было место для новых элементов.
Совместное Windows 10 буфера обмена
-
Выберите Начните > Параметры > система > буфер обмена.
-
В области Синхронизация между устройствамивыберите В. Функция синхронизации привязана к вашей учетной записи Майкрософт или рабочей учетной записи, поэтому используйте одни и те же учетные данные для входа на всех устройствах.
Справка по истории буфера обмена
Открытие параметров буфера обмена
Буфер обмена (Clipboard) — специальная промежуточная зона, куда на компьютере при копировании, вырезании или вставке, помещается нужный объект: выделенный кусок текста, картинка, файл или папка. Буфер обмена Windows — один из основных инструментов операционной системы, с которым сталкиваются все пользователи компьютера.
Буфер обмена на компьютере работает не только с системой, но и со всеми приложениями, с его помощью можно переносить данные между разными программами. По сути, это своеобразный «карман» — промежуточное хранилище для обмена информацией, в котором временно хранятся данные перед их вставкой в другом месте на компьютере.
Содержание:
- Как найти скопированное в буфер обмена Windows
- Работа с Буфером обмена
- Как очистить буфер обмена Windows
- Расширенный буфер обмена Windows 10
- Как открыть буфер обмена Windows 10 — 1 способ
- Как включить буфер обмена Windows 10 — 2 способ
- Буфер обмена: как посмотреть в Windows 10
- Работа с буфером обмена Windows 10
- Буфер обмена Windows 10: горячие клавиши
- Очистка буфера обмена Windows 10
- Выводы статьи
При обычной работе на компьютере пользователи даже не задумываются о существовании этой функции, машинально выполняя рутинные операции по перемещению данных на ПК.
Как найти скопированное в буфер обмена Windows
Вся информация, сохраненная в буфере обмена, помещается в памяти компьютера, а также системном файле, расположенном в папке с операционной системой Windows. Найти буфер обмена можно по следующему пути:
C:WindowsSystem32clip.exe
Но это мало что даст пользователю, так как, начиная с операционной системы Windows 7, напрямую получить доступ к содержимому не представляется возможным. Информацию из буфера обмена можно получить с помощью специализированных приложений. О некоторых подобных программах есть статьи на этом сайте.
Работа с Буфером обмена
В повседневной работе пользователи постоянно сталкиваются с системным инструментом, предназначенным для обмена данными на компьютере. Например, пользователь копирует изображение или фрагмент текста, а затем вставляет скопированное в другой документ или в папку.
В других случаях, объект полностью перемещается в буфер обмена из прежнего расположения, а затем он появляется на новом месте после вставки.
Для этого в контекстном меню Проводника или в прикладных программах имеются команды «Копировать», «Вырезать», «Отправить», «Вставить» и т. д.
В результате, данные свободно перемещаются между совершенно различными приложениями. Для перемещения файлов используется не только контекстное меню, но и сочетания горячих клавиш Windows.
Сочетания клавиш | Действие |
---|---|
Ctrl + A | выделение объектов в активном окне |
Ctrl + C | копирование объекта |
Ctrl + X | вырезание объекта |
Ctrl + V | вставка объекта |
За один раз можно поместить в буфер обмена не только один файл или фрагмент текста, но и целые папки или группы предварительно выделенных файлов и папок.
Вся скопированная информация, пока она не перемещена в другое место, занимает место в памяти ПК. Эти данные удаляются после добавления нового файла в буфер обмена.
Как очистить буфер обмена Windows
Буфер обмена хранит информацию только в то время, пока вы не поместили туда другой файл, содержимое текстового документа или папку. После этого, старые данные удаляются, они заменяются новой информацией.
Все данные из буфера обмена сразу удаляются после выключения компьютера, поэтому эту информацию сохранить не получится. Буфер обмена — временное промежуточное хранилище данных на компьютере.
Расширенный буфер обмена Windows 10
У буфера обмена в Windows 7, Windows 8, Windows 8.1, и в ранних версиях Windows 10 есть серьезное ограничение: после помещения туда новой порции данных, старая информация автоматически удаляется.
К сожалению, поэтому не получается использовать буфер обмена в качестве «копилки», складывая туда файлы, а затем вставляя в нужные места все сразу или по отдельности. Эта функция работает только в приложениях Microsoft Office, где можно сохранить до 20 фрагментов текста.
Другой вариант решения проблемы: использование дополнительных программ, которые могут сохранять данные из буфера обмена. О некоторых приложениях вы найдете информацию в статье о том, где найти буфер обмена Windows.
В настоящее время буфер обмена Windows 10 позволяет работать с большим количеством файлов некоторых форматов. Есть возможности для использования облачного буфера обмена. В этом случае, содержимое буфера обмена синхронизируется с другими устройствами, работающими в вашей учетной записи, поэтому информация из буфера обмена станет доступной на другом компьютере или телефоне.
Обмен некоторыми данными организован при помощи системного средства, которое использует «Журнал буфера обмена Windows 10». Эта возможность доступна пользователям, начиная с версии ОС Windows 10 1809.
Работа с буфером обмена Windows 10 в расширенном режиме проходит со следующими особенностями:
- Используйте учетную запись Майкрософт, которая связана с облаком, для синхронизации данных между своими устройствами.
- Размер объекта, помещаемого в журнал буфера обмена, не должен превышать 4 МБ.
- Поддерживаются текст, HTML и растровые изображения.
- Существует ограничение — лимит на не более 25 скопированных записей.
Все остальные объекты в Windows 10, например, папки или файлы других типов перемещаются на компьютере при помощи буфера обмена в обычном режиме. Информация стирается из буфера обмена после добавления туда нового объекта.
Сейчас посмотрим, где буфер обмена Windows 10 включается и как пользоваться этим инструментом.
Как открыть буфер обмена Windows 10 — 1 способ
По умолчанию в Windows 10 используется обычные функции Буфера обмена. Для использования расширенного варианта нужно активировать некоторые настройки в параметрах операционной системы.
Пройдите следующие шаги:
- Щелкните правой кнопкой мыши по меню «Пуск».
- В контекстном меню нажмите на «Параметры».
- Войдите в раздел «Система».
- Откройте вкладку «Буфер обмена».
- В разделе «Журнал буфера обмена» передвиньте ползунок переключателя в положение «Включено».
Как включить буфер обмена Windows 10 — 2 способ
Существует более простой способ включить просмотр содержимого буфера обмена Windows 10. Для этого, необходимо выполнить следующие действия:
- Нажмите на клавиши «Win» + «V».
- В области уведомлений откроется окно «Буфер обмена» с информацией о том, что не удается отобразить журнал.
- Нажмите на кнопку «Включить», для журнала активации журнала буфера обмена в Windows
Буфер обмена: как посмотреть в Windows 10
Сразу после включения буфер обмена Windows 10 будет пустым до того момента, когда туда не добавится новая скопированная информация.
Зайти в буфер обмена Windows 10 можно следующим способом:
- Нажимайте на клавиши «Win» + «V».
- В окне буфера обмена отобразятся скопированные элементы.
Работа с буфером обмена Windows 10
Скопированные или вырезанные объекты сохраняются в журнале буфера обмена. Пользователю доступны некоторые операции:
- Может закреплять нужные элементы, чтобы они не удалялись из буфера обмена при добавлении новых элементов или выключении компьютера.
- Включить синхронизацию для доступа к данным в буфере обмена с других устройств, работающих под управлением одной учетной записи.
Для того, чтобы синхронизировать содержимое буфера обмена между разными устройствами пользователя, нужно изменить настройки операционной системы:
- Нажмите на клавиши «Win» + «I» для запуска приложения «Параметры».
- Войдите в параметры «Система».
- Во вкладке «Буфер обмена», в разделе «Синхронизация между устройствами» нажмите на кнопку «Начало работы».
Вы можете выбрать один из предложенных вариантов:
- Автоматически синхронизировать текст, который я копирую.
- Никогда не выполнять автоматическую синхронизацию текста, который я копирую.
Этой возможностью следует пользоваться в том случае, если пользователь авторизован на разных устройствах в одной учетной записи Microsoft.
Востребованной операцией является просмотр буфера обмена Windows 10:
- Нажмите на клавиши «Win» + «V».
- В открытом окне отобразится история буфера обмена в Windows 10.
Чтобы закрепить или удалить необходимый элемент в журнале буфера обмена, выполните следующие действия:
- Выделите нужный объект в окне «Буфер обмена».
- Щелкните по кнопке из трех точек в правом верхнем углу поля отдельного элемента.
- В открывшемся меню выберите один из вариантов:
- Удалить — удаление данного элемента.
- Закрепить — закрепление элемента в буфере обмена.
- Очистить все — очистка всех элементов из буфера обмена.
В результате ваших действий элемент будет удален из буфера обмена или закреплен в буфере обмена.
Закрепленный элемент не будет удален из буфера обмена Windows 10 после выключения или перезагрузки компьютера. Все остальные незакрепленные элементы будут удалены из буфера обмена.
При необходимости, закрепленный элемент в любое время можно открепить или удалить.
Буфер обмена Windows 10: горячие клавиши
Буфер обмена поддерживает работу «горячих» клавиш, с которыми вы можете ознакомиться в таблице.
Комбинации горячих клавиш для буфера обмена Windows 10 (таблица):
Сочетания клавиш | Действие |
---|---|
Win + V | открытие Буфера обмена Windows 10 |
P | закрепление выделенного элемента в буфере обмена |
U | удаление выделенного элемента в буфере обмена после выключения или перезагрузки ПК |
Del | удаление элемента из буфера обмена |
Очистка буфера обмена Windows 10
При необходимости, пользователь может сразу очистить всю историю обмена на своем ПК и из облака, если он использует эту функцию, или удалить оттуда только отдельные элементы.
Чтобы удалить отдельный элемент, находящийся в буфере обмена, потребуется выполнить некоторые действия:
- После нажатия на клавиши «Win» + «V», выделите ненужный элемент.
- Потом нажимайте на три точки для вызова меню.
- В открытом меню выберите «Удалить».
При другом варианте, это действие совершается при помощи клавиши «Del».
Полное удаление содержимого буфера обмена выполняется следующим образом:
- Войдите в меню «Пуск».
- Запустите «Параметры».
- В параметрах откройте окно «Система».
- Во вкладке «Буфер обмена» перейдите к опции «Очистить данные буфера обмена».
- Нажмите на кнопку «Очистить».
С компьютера и облачного буфера обмена Майкрософт будут удалены все данные, кроме закрепленных элементов.
Выводы статьи
Работая на компьютере, пользователи постоянно используют функцию буфера обмена для копирования или перемещения файлов, папок, текста в другие места своего ПК. В операционной системе Windows 10 имеется расширенный буфер обмена, в котором при помощи журналирования сохраняются закрепленные данные, есть возможности для синхронизации содержимого буфера обмена между несколькими устройствами, работающими в одной учетной записи.
Похожие публикации:
- ReadyBoost — ускорение работы системы и приложений
- Контроль памяти Windows 10 — автоматическая очистка диска
- Перезагрузка Windows с помощью клавиш клавиатуры
- Как скрыть панель задач Windows 10
- Как узнать разрядность системы Windows — 12 способов
The modern clipboard offers a synced history of copied items
Updated on February 8, 2021
What to Know
- Copy to clipboard: Highlight the text or image and press Ctrl+C or right-click the text or image and select Copy in the pop-up menu.
- Paste from clipboard: Press Ctrl+V to paste the last copied item. Paste from clipboard history: Press Windows key+V and select item to paste.
- Clear clipboard: Press Windows key+V. Select X in the corner of an item to delete it or select Clear all to remove all items.
This article explains how to use the clipboard in Windows 10. In addition to information on copying, pasting, and clearing the clipboard, it includes information on pinning items to the clipboard.
How to Copy Content to the Windows 10 Clipboard
The clipboard in the Windows 10 operating system is more advanced than the previous clipboard experience. With the new clipboard, you can view the text and images that are copied to the clipboard and choose which content you want to paste.
In addition, the new clipboard can sync to other Windows 10 computers and tablets that use the same Microsoft account login. This means you can copy images and text from one Windows 10 device and paste to another device.
Basic copying of content to the clipboard on Windows 10 can be done using either of the following methods.
- Highlight the chosen text or image within an app and press Ctrl+C.
- Right-click text or images and select Copy from the pop-up menu.
How to Paste From the Clipboard on Windows 10
To paste the last copied content from the clipboard into an app, use either of the two standard paste methods:
- Press Ctrl+V.
- Right-click where you want to paste the content and select Paste from the pop-up menu.
By using the modern Windows 10 clipboard functionality, though, you can choose from several previously copied entries from the clipboard history.
Only images smaller than 4 MB save to the Windows 10 clipboard.
To view the clipboard history, press Windows key+V.
After the clipboard open, scroll up or down to find the text or image and select it to paste it into the open app.
How to Clear Clipboard Data
Deleting text and images from the Windows 10 clipboard can be done in three ways.
- Open the clipboard by pressing Windows key+V and then select the X in the upper-left corner of each item you want to delete.
- Open the clipboard by pressing Windows key+V and then select Clear all. This deletes every item in the Windows 10 clipboard except for the items that you pinned.
- Open Settings > System > Clipboard and select Clear. This deletes everything in the Windows 10 clipboard except for pinned items.
Pin Windows 10 Clipboard Text
While clearing clipboard content can be useful, there may be some content that you don’t want to delete. Manually select specific items and protect those items from deletion by pinning them.
To pin clipboard content, press Windows key+V to open the clipboard and then select the small pin icon to the right of the text and images you want to preserve. If done correctly, the horizontal pin icon should tilt to a 45-degree angle.
To unpin clipboard text or images, click on the pin icon again.
When as item is pinned, it is protected every time you clear the clipboard in the future.
Thanks for letting us know!
Get the Latest Tech News Delivered Every Day
Subscribe
The modern clipboard offers a synced history of copied items
Updated on February 8, 2021
What to Know
- Copy to clipboard: Highlight the text or image and press Ctrl+C or right-click the text or image and select Copy in the pop-up menu.
- Paste from clipboard: Press Ctrl+V to paste the last copied item. Paste from clipboard history: Press Windows key+V and select item to paste.
- Clear clipboard: Press Windows key+V. Select X in the corner of an item to delete it or select Clear all to remove all items.
This article explains how to use the clipboard in Windows 10. In addition to information on copying, pasting, and clearing the clipboard, it includes information on pinning items to the clipboard.
How to Copy Content to the Windows 10 Clipboard
The clipboard in the Windows 10 operating system is more advanced than the previous clipboard experience. With the new clipboard, you can view the text and images that are copied to the clipboard and choose which content you want to paste.
In addition, the new clipboard can sync to other Windows 10 computers and tablets that use the same Microsoft account login. This means you can copy images and text from one Windows 10 device and paste to another device.
Basic copying of content to the clipboard on Windows 10 can be done using either of the following methods.
- Highlight the chosen text or image within an app and press Ctrl+C.
- Right-click text or images and select Copy from the pop-up menu.
How to Paste From the Clipboard on Windows 10
To paste the last copied content from the clipboard into an app, use either of the two standard paste methods:
- Press Ctrl+V.
- Right-click where you want to paste the content and select Paste from the pop-up menu.
By using the modern Windows 10 clipboard functionality, though, you can choose from several previously copied entries from the clipboard history.
Only images smaller than 4 MB save to the Windows 10 clipboard.
To view the clipboard history, press Windows key+V.
After the clipboard open, scroll up or down to find the text or image and select it to paste it into the open app.
How to Clear Clipboard Data
Deleting text and images from the Windows 10 clipboard can be done in three ways.
- Open the clipboard by pressing Windows key+V and then select the X in the upper-left corner of each item you want to delete.
- Open the clipboard by pressing Windows key+V and then select Clear all. This deletes every item in the Windows 10 clipboard except for the items that you pinned.
- Open Settings > System > Clipboard and select Clear. This deletes everything in the Windows 10 clipboard except for pinned items.
Pin Windows 10 Clipboard Text
While clearing clipboard content can be useful, there may be some content that you don’t want to delete. Manually select specific items and protect those items from deletion by pinning them.
To pin clipboard content, press Windows key+V to open the clipboard and then select the small pin icon to the right of the text and images you want to preserve. If done correctly, the horizontal pin icon should tilt to a 45-degree angle.
To unpin clipboard text or images, click on the pin icon again.
When as item is pinned, it is protected every time you clear the clipboard in the future.
Thanks for letting us know!
Get the Latest Tech News Delivered Every Day
Subscribe
Время прочтения
12 мин
Просмотры 44K
Недавно у меня появилась возможность выполнить отладку буфера обмена в 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 об этом.
Что такое буфер обмена и как посмотреть что в нём находится?
На чтение 4 мин Просмотров 21.7к. Опубликовано 10.09.2021
Разберёмся, где находится буфер обмена в операционной системе, а также расскажем, какими средствами его можно открыть. Рассмотрим как системные варианты, так и сторонние утилиты. В конце определим, можно ли использовать этот инструмент как временное хранилище для важных данных.
Содержание
- Как открыть буфер обмена на компьютере
- Буфер обмена что это такое?
- Где находится буфер обмена?
- Как посмотреть что находится в буфере обмена
- В Windows 10
- В Punto Switcher
- Как долго там хранится информация
Как открыть буфер обмена на компьютере
Буфер обмена в Windows представляет собой отдельный EXE-файл, который невозможно открыть стандартными средствами системы – о том, как просмотреть его содержимое, и пойдёт речь далее.
Буфер обмена что это такое?
Буфер (clipboard) в компьютере – часть оперативной памяти устройства, в которой хранятся данные, скопированные пользователем. Любое нажатие на кнопку «Копировать» или использование комбинации Ctrl + C (Ctrl + X тоже) ведёт к тому, что ПК начинает «удерживать в уме» выбранную информацию.
Хранилище содержит в себе последнее скопированное значение – как только пользователь скопирует другой файл, предыдущие данные из буфера обмена будут удалены.
Где находится буфер обмена?
Описываемая часть ОЗУ на ноутбуке или на ПК с Виндовс располагается по адресу C:WindowsSystem32 и называется «clip.exe» — в других директориях он находиться не может. Пользователю 7, 8, 8.1 и 10-й версии OS (в ранних сборках) нельзя просматривать содержимое или очищать его (только копировать в буфер обмена). Чуть больше повезло владельцам старой Windows XP – найти системный буфер обмена среди объектов можно по названию «clipbrd.exe», файл может быть беспрепятственно отредактирован.
Удалять, перемещать, включать, выключать и переименовывать это небольшое хранилище также нельзя.
Как посмотреть что находится в буфере обмена
Посмотреть содержимое буфера обмена в Win 7 и 8 в данный конкретный момент можно только с помощью сторонних программ. Конечно, последний скопированный текст можно вставить в Word, а картинку – в Paint, однако историю файлов достать из системы не удастся. С Windows 10 чуть проще — в ней есть встроенное средство, с помощью которого можно легко открыть буфер обмена на любом компьютере.
В Windows 10
Пользоваться предложенной ниже инструкцией смогут пользователи с Windows 10 версии 1809 и новее. Воспользуйтесь сочетанием клавиш Win + V. Объекты, которые вы когда-то решили скопировать в буфер обмена, отсортируются по дате и будут доступны для использования. Нажатие на любой объект скопирует его и поднимет на вершину списка. Любую запись можно закреплять через «булавку» — так она не удалится при очистке. Картинки сохраняются в форме превью.
Если комбинация не работает, нужно предварительно включить буфер обмена:
- Нажмите Win + X, чтобы вызвать контекстное меню «Пуск», перейдите в «Параметры».
- Перейдите в блок «Система».
- Разверните одноимённую строчку, активируйте опцию работы с журналом (обратите внимание на скриншот).
Если системный инструмент показался неудобным (или отсутствует в используемой версии ОС), переходите к следующему методу – в нём разберём удобное приложение.
В Punto Switcher
Punto Switcher – маленькая программа, предназначенная для быстрого переключения между раскладками клавиатуры. Дополнительно этот инструмент хранит около 30 текстовых объектов, скопированных пользователем – все эти данные можно быстро извлекать из буфера обмена.
Используйте по следующей инструкции (ссылка на скачивание по названию):
- Откройте «Настройки» программы (если она запущена, иконка помещается в область системных уведомлений), в блоке «Общие» перейдите во вкладку «Дополнительные» и активируйте пункты «Следить за…» и «Сохранять историю после перезагрузки ПК».
- Кликните правой кнопкой по иконке «Punto Switcher» в системном трее, разверните соответствующую вкладку и нажмите на «Просмотреть историю», чтобы войти в список.
- Выберите текст нажатием – он копируется и становится доступен для быстрой вставки.
Switcher распространяется бесплатно, не оказывает серьёзного влияния на производительность системы.
Как долго там хранится информация
Информация из буфера обмена хранится до тех пор, пока пользователь не решит поместить в clipboard другие данные. Перезагрузка системы также приводит к очистке хранилища. Подобное хранилище – временное по своему предназначению. Оно нужно исключительно для быстрого переноса данных. «Копирование» и «вставка» всегда должны идти рядом – иначе важные сведения можно легко потерять.
Работаю в IT сфере более 10 лет. Имею большой опыт работы в технической поддержке пользователей. Легко объясняю сложные вещи простым языком.
Здравствуйте, уважаемые читатели блога Goldbusinessnet.com. Сегодня поговорим о буфере обмена, о том, как его найти и возможно ли его открыть для просмотра содержимого, а также о некоторых других особенностях этого понятия.
Оглавление
- Что такое буфер обмена и как мы его используем?
- Где находится буфер обмена в операционной системе Виндоус?
- Как почистить буфер обмена на компьютере?
- Замена содержания буфера обмена
- Очистка clipboard силами ОС Виндовс
- Как очистить буфер средствами стороннего софта?
Если говорить конкретно, то буфер обмена является промежуточным хранилищем данных, занимающим определенное место в оперативной памяти компьютера. Именно это и позволяет осуществлять передачу нужной информации, а именно копировать, вырезать и вставлять в нужные места файлы, папки или просто текст.
В процессе повествования я постараюсь немного глубже раскрыть суть этого термина, указать физическое местоположение соответствующего файла на компьютере, а также проанализировать возможность очистки буфера при необходимости, используя при этом разнообразные методы.
Что такое буфер обмена и как мы его используем?
На самом деле, осуществляя какие-то действия, мы частенько не задумываемся об их содержании и сути. Точно также обстоит дело и в нашем случае. Давайте посмотрим, как мы задействуем буфер обмена (по-английски clipboard) при простейших манипуляциях с файлами или текстом, если у вас установлена наиболее популярная ОС Windows.
Допустим, нам нужно скопировать или вырезать любой файл, расположенный в той или иной папке на компьютере, для переноса его в другую директорию. Надеюсь, вам известно, что в первом случае мы снимаем копию файлика, оставляя оригинал в сохранности, а во втором физически перемещаем его в новую папку.
Это можно сделать двумя способами: вызвать контекстное меню кликом правой кнопкой мышки и выбрать из него «Копировать» или «Вырезать» либо воспользоваться «горячими клавишами» соответственно Ctrl + C и Ctrl + X:
Как только вы произведете одно из выше описанных действий, скопированный или вырезанный файл перемещается в буфер обмена. Далее открываем нужную папку, вновь щелкаем по правой кнопке мышки, выбираем пункт «Вставить» (либо используем комбинацию клавиш Ctrl + V), перемещая файлик из буфера в выбранное место:
Видите, как все просто? Подобные операции можно производить с абсолютно любыми файлами, включая видео, причем перемещать их из одного приложения (программы) в другое. Например, попробуем скопировать кусочек текста из простого блокнота Windows в буфер обмена, а затем вставить содержимое в документ, созданный в онлайн сервисе Google Таблицы:
При использовании clipboard важно иметь ввиду следующее. Помещать объекты (файлы, текст) в буфер обмена и затем извлекать их оттуда для вставки в нужную область можно неограниченное количество раз, но это касается только лишь последнего объекта, над которым вы совершаете подобное действие. Не совсем понятно?
Попробую объяснить более внятно. Скажем, вы скопировали какой-нибудь файлик, тогда вы можете его сколь угодно много раз вставлять в разные места, не повторяя процедуру копирования, а просто каждый раз выбирая из контекстного меню пункт «Вставить» либо набирая выше упомянутую комбинацию Ctrl + V.
Однако, как только вы скопируете или вырежете другой файл, тот сразу окажется в буфере и вытеснит оттуда предыдущий объект, который будет удален. Конечно, все выше описанные действия возможны только до тех пор, пока вам не понадобится перезагрузить или выключить компьютер, то есть в течении рабочей сессии системы. После перезагрузки или отключения ПК буфер автоматически будет очищен.
Резюмируя, засвидетельствуем, что сохраняется в буфере обмена только последний объект, над которым совершаем процедуру (в том числе многократно повторяющуюся) копирования или вырезания. Как только вы начинаете производить аналогичные действия с другим файлом, вся информация о предыдущем стирается. При просмотре ниже следующего видеоролика вы получите представление о буфере обмена на основе интересных примеров:
Где буфер обмена в операционной системе Виндоус?
Итак, мы определили, что clipboard занимает определенное место в оперативной памяти компьютера, равное размеру скопированного или вырезанного файлика. У вас может возникнуть вполне резонный вопрос о том, как и где найти этот самый буфер обмена и зайти в него для просмотра информации?
Собственно говоря, занимаемая буфером область в каком-то смысле виртуальное понятие и невидима в обычном смысле. Однако, на самом деле в Виндовс существует файлик, который запускает специальную программу, отвечающую за выполнение необходимых действий копирования и вырезания.
В Windows XP это clipbrd.exe, который расположен в системной папке по адресу:
C:Windowssystem32clipbrd.exe
Естественно, эта информация дана для общего развития, ни в коем случае не экспериментируйте и не производите никаких действий с этим файликом (как и со всеми остальными объектами, находящимися в системной папке), это может привести к необратимым последствиям.
Чтобы посмотреть содержание буфера в версии XP, вы в силах воспользоваться меню «Пуск» и находящейся там кнопкой «Выполнить». В строку вводите название запускающего файла «clipbrd.exe». После этих действий в открывшемся окне появится содержимое последнего скопированного объекта.
В современных версиях ОС Виндоус разработчики изменили структуру работы буфера обмена. В той же Windows 7 и более поздних модификациях (8 и 10) такого файла нет. Вместо него за хранение данных в буфере обмена отвечает clip.exe, также находящийся в системной папке:
Однако, открыть его и посмотреть, что там находится, вам так просто не удастся. Это один из недостатков, которых, в общем-то, немало. Собственно, мы используем буфер на автомате лишь при перемещении объектов.
А при определенной специфике работы на компьютере иногда важно отслеживать историю clipboard и удалять только ту информацию, которая вам действительно не нужна. Необходимы и некоторые другие функции, которые возможно задействовать только с помощью стороннего софта.
Как почистить буфер обмена на компьютере
В общем случае этого делать обычно не требуется, ведь, как было сказано выше, после выключения компьютера либо его перезагрузки все данные из буфера удаляются. Но иногда может возникнуть ситуация, когда просто-таки необходимо срочно очистить clipboard.
Допустим, вы скопировали или вырезали крупный объект (скажем, видеофайл), который занимает приличное место, что отрицательно может сказаться на производительности устройства, особенно, если ваш компьютер не может похвастаться большим объемом оперативной памяти.
Либо необходимо удалить какую-нибудь конфиденциальную информацию (например, пароль). Конечно, такие данные в буфер обмена операционной системы вообще не рекомендуется помещать. Для хранения паролей лучше использовать специальные программы.
Я, например, остановился на KeePass, имеющей свой буфер, информация в котором автоматически удаляется в том порядке, который вы сами можете настроить:
Но это так, к слову пришлось…А теперь продолжим непосредственно по теме. Для очистки буфера есть несколько способов, каждый из которых вполне по силам даже начинающим пользователям. Причем они доступны для всех последних версий Windows (7, 8, 10).
Замена содержания буфера обмена
Данный метод не является очисткой в полном смысле этого слова, но тем не менее…Он годится, когда вам срочно надо удалить из буфера «тяжелый файл» или попавшую туда конфиденциальную информацию. В этом случае просто копируете любую часть текста, можно даже с открытой в браузере веб-страницы:
Как видно из скриншота выше, вполне достаточно скопировать единственный символ (букву), чтобы вытеснить из клипборда находящийся там объект любого размера и содержания.
Очистка clipboard силами ОС Виндовс
Этот метод предусматривает использование командной строки. Для Виндоус 8/10 проще всего кликнуть правой кнопкой мышки по логотипу в левом нижнем углу, где открывается меню «Пуск» либо нажать сочетание клавиш Win + X, в результате чего появится список быстрых ссылок, среди которых присутствует нужный нам линк запуска утилиты командной строки:
Для Windows 7 открываем меню «Пуск» и в строку поиска вписываем «cmd»:
Запускаем командную строку от имени администратора. Для этого размещаем курсор на найденной системой ссылке, кликаем правой кнопкой мышки и из контекстного меню выбираем нужный пункт:
В результате должно появиться диалоговое окно черного цвета. Туда необходимо внести следующую команду:
echo off | clip
Получится вот так:
Жмем «Enter» на клавиатуре, в итоге буфер будет очищен, чего мы и добивались. Ежели вы намерены постоянно прибегать к такой операции, то каждый раз совершать несколько кликов будет не совсем удобно. Поэтому можно «застолбить» очистку и выполнять ее в один клик.
С этой целью надо просто создать ярлык прямо на рабочем столе вашего компьютера. Щелкаете по экрану опять же правой кнопкой мыши и выбираете пункт «Создать» — «Ярлык»:
Затем в строку расположения объекта вписываете путь до утилиты и нужную команду по очистке буфера обмена:
C:WindowsSystem32cmd.exe /c "echo off | clip"
Это будет выглядеть следующим образом:
Жмете на кнопочку «Далее» и на следующем шаге придумываете название для данного действа, которое бы сразу давало понять, для чего оно предназначено:
После нажатия «Готово» системой будет создан ярлык, который будет размещен прямо на рабочем столе. Теперь в любое время вы сможете почистить clipboard одним кликом, затрачивая на это буквально несколько секунд. В качестве дополнения смотрите видеоролик:
Как очистить буфер средствами стороннего софта?
Специально устанавливать программное обеспечение только для очистки я считаю нерентабельным (впрочем, сколько людей, столько и мнений). А вот если вам необходимы дополнительные возможности, связанные и с другими функциями, например, касающимися сохранения истории буфера обмена, то лучшим решением, пожалуй, будет программа Clipdiary, о которой обязательно напишу отдельную статью, так как она того заслуживает.
Ну а теперь посмотрим, с помощью каких многофункциональных программ, часто применяемых пользователями, можно выполнить задачу очистки. Возможно, вы применяете для повышения производительности своего компьютера тот же CCleaner? Если нет, то рекомендую, особенно если ваш ПК не «первой свежести» и нуждается в постоянной очистке всякого «мусора».
Даже бесплатный вариант этого софта (а есть еще платный с широчайшими возможностями) может принести неоценимую пользу, за один сеанс вычищая реестр, временные файлы, кеш браузеров и т.д. Среди всего этого многообразия есть и опция по чистке буфера Windows:
Наверняка многие юзеры пользуются бесплатной программой для переключения клавиатуры Punto Switcher, которая позволяет многократно повысить производительность работы на компьютере. Пунто может предложить пользователю, помимо целого ряда других полезных опций, еще и расширенный функционал буфера обмена, включая возможность его очистки.
Эта новая функция буфера обмена Windows 10 значительно более продвинута, чем традиционная работа с буфером обмена, которая была ограничена вставкой только недавно скопированного текста или изображения. Теперь вы можете просматривать различные текстовые и графические изображения, которые были скопированы в буфер обмена, и выбирать, какой контент вы хотите вставить.
В дополнение к большему количеству элементов для вставки, что действительно отличает эту функцию буфера обмена, так это возможность синхронизации с другими компьютерами и планшетами Windows 10, которые используют ту же учетную запись Microsoft . Это означает, что вы можете копировать изображения и текст с одного устройства Windows 10 и вставлять его на другое.
Вот как использовать современную функцию буфера обмена Windows 10.
Как скопировать содержимое в буфер обмена Windows 10
- Выделите выбранный текст или изображение внутри приложения и нажмите Ctrl + C . Многие называют это ярлыком копирования .
- Щелкните правой кнопкой мыши текст или изображения и выберите « Копировать» во всплывающем меню.
Как вставить из буфера обмена на Windows 10
Если вы хотите просто вставить последнее скопированное содержимое из буфера обмена в приложение, вы все равно можете использовать два традиционных метода вставки ниже.
- Нажмите Ctrl + V . Это традиционный ярлык вставки, используемый в большинстве предыдущих версий операционной системы Windows .
- Щелкните правой кнопкой мыши место, куда вы хотите вставить содержимое, и выберите « Вставить» во всплывающем меню.
Используя современные функции буфера обмена Windows 10, вы можете выбирать из числа ранее скопированного контента из истории буфера обмена.
В буфер обмена Windows 10 можно сохранить только изображения размером менее 4 МБ.
Чтобы получить доступ к этому, вам сначала нужно просмотреть историю буфера обмена.
Это можно сделать, нажав для Windows + V . После открытия прокрутите вверх или вниз, чтобы найти текст или изображение, которое вы хотите использовать, и щелкните по нему, чтобы вставить в открытое приложение.
Как очистить данные буфера обмена Windows 10
Удаление текста и изображений из буфера обмена Windows 10 может быть сделано тремя различными способами.
- Откройте буфер обмена, нажав Windows + V, а затем нажмите X в левом верхнем углу каждого элемента, который вы хотите удалить. Это полезно, когда вы хотите удалить только один элемент.
- Откройте буфер обмена, нажав Windows + V, а затем нажмите Очистить все . Это удалит каждый элемент в вашем буфере обмена Windows 10, за исключением тех, которые вы закрепили.
- Откройте Настройки > Система > Буфер обмена и нажмите Очистить . Это также приведет к удалению всего в буфере обмена Windows 10, за исключением закрепленных элементов.
Закрепление текста в буфере обмена Windows 10
Хотя очистка всего содержимого буфера обмена может быть полезной, возможно, есть контент, который вы не хотите удалять. К счастью, вы можете вручную выбрать определенные элементы и защитить их от удаления, закрепив их.
Чтобы закрепить содержимое буфера обмена, нажмите Windows + V, чтобы открыть буфер обмена, а затем нажмите маленький значок булавки справа от текста и изображений, которые вы хотите сохранить. Если все сделано правильно, значок горизонтального штифта должен наклониться на 45 градусов.
Чтобы открепить текст буфера обмена или изображения, снова щелкните значок булавки.
После закрепления выбранный вами контент будет защищаться каждый раз, когда вы очищаете буфер обмена в будущем.
Чем отличается современный буфер обмена Windows 10
Хотя в современном интерфейсе буфера обмена все еще используются популярные сочетания клавиш копирования и вставки, Ctrl + C и Ctrl + V , он обладает некоторыми дополнительными функциями, которые выделяют его.
- Все содержимое буфера обмена может синхронизироваться между устройствами Windows 10, которые используют одну и ту же учетную запись.
- Вы можете увидеть скопированный контент, прежде чем вставить его.
- Вы можете вставить большой выбор скопированного контента, а не только самый последний.
- Элементы буфера обмена могут быть удалены. Это полезно для тех, кто не хочет, чтобы другие пользователи видели, что они делают.
- Выбранный контент можно защитить от удаления, закрепив.