- Просмотр и управление буфером обмена в Windows 10/8/7
- Буфер обмена в Windows
- Просмотр буфера обмена
- Буфер обмена для Windows 10/8
- Буфер обмена. Использование буфера обмена Windows Clipboard: Using the Windows Clipboard
- About the Clipboard
- Clipboard Commands
- Clipboard Sequence Number
- Clipboard Viewers
- Clipboard Viewer Windows
- Display Formats
- Owner Display Format
- Работа с буфером обмена в JavaScript с использованием асинхронного API Clipboard
- Запись данных в буфер обмена
- Чтение данных из буфера обмена
- Практический пример
- Будущее API Clipboard
- Проверка возможностей браузера
- Итоги
Просмотр и управление буфером обмена в Windows 10/8/7
Когда вы копируете, вырезаете или перемещаете данные, они временно удерживаются в невидимой части памяти. Это называется ClipBoard. Буфер обмена позволяет приложениям передавать данные либо между приложениями, либо внутри приложения.
В Windows XP был clipbrd.exe , называемый Просмотр буфера обмена или Просмотр клипов , который можно использовать для просмотра того, что было сохранено на вашем компьютере. буфер обмена. Если вы попытаетесь найти этот исполняемый файл в Windows Vista, Windows 7, Windows 8 или Windows 10, вы не сможете найти clipbrd.exe.
Буфер обмена в Windows
В Windows XP этот файл находился в C: \ Windows \ System32 \ clipbrd.exe . В настоящее время отсутствует как часть установки Windows 10/8/7. Вы можете попробовать скопировать его из установки Windows XP, если у вас есть к нему доступ, и вставить его в папку System32. В большинстве случаев это работает.
Просмотр буфера обмена
Если вы хотите, вы можете скачать Windows Clipboard Viewer здесь. Но если это не работает или вы сталкиваетесь с каким-то сообщением: Точка входа не найдена , то вы можете попробовать запустить его в режиме совместимости с Windows XP/SP2 и посмотреть, работает ли оно.
Буфер обмена Windows очень простой по своей природе и не предлагает много функций. В результате в Интернете доступны многие бесплатные альтернативы буфера обмена, такие как ArchiveClipboard, Enhanced Clipboard Manager, CopyCat, Clipboardic, Orange Note, Ditto, Clipboard Magic и т. Д.
Вы также можете попробовать это бесплатное средство просмотра буфера обмена. Это приложение позволяет вам заглянуть внутрь вашего буфера обмена Windows.
Буфер обмена для Windows 10/8
Приложение буфера обмена для Windows 8/10 позволит вам обмениваться информацией с буфером обмена и из него, используя функцию Charm Share. Это особенно полезно для соединения настольных приложений с приложениями среды выполнения Windows, которые поддерживают функции общего доступа. Существуют также другие современные приложения пользовательского интерфейса, такие как Clipboard Plus, Clipboard + и Clipboard Circle , которые могут выступать в качестве менеджеров буфера обмена в Windows 8. Clipa.Vu – еще одно приложение менеджера буфера обмена для Windows 10/8, вы можете проверить.
Кстати, Clip.exe – это другой файл, который является частью Microsoft Word/Office Clip Organizer. Это команда cmd. И rdpclip.exe является основным исполняемым файлом для File Copy, который позволяет копировать и вставлять между сервером и клиентом. Windows Snipping Tool также может рассматриваться как разновидность разновидностей. Он позволяет копировать любую часть любого экрана, делать заметки, а затем копировать их в буфер обмена в виде графики, сохранять в виде графики или HTML-файла и/или отправлять по электронной почте. Но вы не можете просматривать буфер обмена с ним.
Читать дальше . Советы и подсказки диспетчера буфера обмена Windows.
Пост портирован из WinVistaClub, обновлен и размещен здесь.
Буфер обмена. Использование буфера обмена Windows Clipboard: Using the Windows Clipboard
В этом разделе описывается, как использовать стандартный API буфера обмена Windows в приложении MFC. This topic describes how to use the standard Windows Clipboard API within your MFC application.
Большинство приложений для Windows поддерживают Вырезание или копирование данных в буфер обмена Windows и вставляя данные из буфера обмена. Most applications for Windows support cutting or copying data to the Windows Clipboard and pasting data from the Clipboard. Форматы данных буфера обмена могут различаться в разных приложениях. The Clipboard data formats vary among applications. Платформа поддерживает только ограниченное число форматов буфера обмена для ограниченного числа классов. The framework supports only a limited number of Clipboard formats for a limited number of classes. Вы обычно реализуете команды, связанные с буфером обмена (вырезание, копирование и вставка), в меню Правка для представления. You will normally implement the Clipboard-related commands — Cut, Copy, and Paste — on the Edit menu for your view. Библиотека классов определяет идентификаторы команд для следующих команд: ID_EDIT_CUT, ID_EDIT_COPY и ID_EDIT_PASTE. The class library defines the command IDs for these commands: ID_EDIT_CUT, ID_EDIT_COPY, and ID_EDIT_PASTE. Также определяются сообщения командной строки. Their message-line prompts are also defined.
Сообщения и команды в платформе поясняют, как управлять командами меню в приложении путем сопоставления команды меню с функцией обработчика. Messages and Commands in the Framework explains how to handle menu commands in your application by mapping the menu command to a handler function. Пока приложение не определяет функции обработчика для команд буфера обмена в меню Правка, они остаются отключенными. As long as your application does not define handler functions for the Clipboard commands on the Edit menu, they remain disabled. Чтобы написать функции обработчика для команд Cut и Copy, реализуйте выбор в приложении. To write handler functions for the Cut and Copy commands, implement selection in your application. Чтобы написать функцию обработчика для команды вставки, запросите буфер обмена, чтобы узнать, содержит ли он данные в формате, который может принимать приложение. To write a handler function for the Paste command, query the Clipboard to see whether it contains data in a format your application can accept. Например, чтобы включить команду Copy, вы можете написать обработчик примерно следующего вида: For example, to enable the Copy command, you might write a handler something like the following:
Команды вырезания, копирования и вставки имеют смысл только в определенных контекстах. The Cut, Copy, and Paste commands are only meaningful in certain contexts. Команды «вырезать» и «Копировать» должны быть включены только в том случае, если что-то выбрано, а команда вставить только в буфер обмена. The Cut and Copy commands should be enabled only when something is selected, and the Paste command only when something is in the Clipboard. Это поведение можно предоставить, определив функции обработчика обновлений, которые включают или отключают эти команды в зависимости от контекста. You can provide this behavior by defining update handler functions that enable or disable these commands depending on the context. Дополнительные сведения см. в разделе Обновление объектов User-Interface. For more information, see How to Update User-Interface Objects.
Библиотека Microsoft Foundation Class обеспечивает поддержку буфера обмена для редактирования текста с помощью CEdit классов и CEditView . The Microsoft Foundation Class Library does provide Clipboard support for text editing with the CEdit and CEditView classes. Классы OLE также упрощают реализацию операций с буфером обмена, использующих элементы OLE. The OLE classes also simplify implementing Clipboard operations that involve OLE items. Дополнительные сведения о классах OLE см. в разделе буфер обмена. Использование механизма буфера обмена OLE. For more information on the OLE classes, see Clipboard: Using the OLE Clipboard Mechanism.
Реализация других команд меню «Правка», таких как «отменить» (ID_EDIT_UNDO) и «повторить» (ID_EDIT_REDO), также остается ненужной. Implementing other Edit menu commands, such as Undo (ID_EDIT_UNDO) and Redo (ID_EDIT_REDO), is also left to you. Если приложение не поддерживает эти команды, их можно легко удалить из файла ресурсов с помощью Visual C++ редакторов ресурсов. If your application does not support these commands, you can easily delete them from your resource file using the Visual C++ resource editors.
About the Clipboard
The clipboard is a set of functions and messages that enable applications to transfer data. Because all applications have access to the clipboard, data can be easily transferred between applications or within an application.
The clipboard is user-driven. A window should transfer data to or from the clipboard only in response to a command from the user. A window must not use the clipboard to transfer data without the user’s knowledge.
A memory object on the clipboard can be in any data format, called a clipboard format. Each format is identified by an unsigned integer value. For standard (predefined) clipboard formats, this value is a constant defined in Winuser.h; for registered clipboard formats, it is the return value of the RegisterClipboardFormat function.
Except for registering clipboard formats, individual windows perform most clipboard operations. Typically, a window procedure transfers information to or from the clipboard in response to the WM_COMMAND message.
This section discusses the following:
Clipboard Commands
A user typically carries out clipboard operations by choosing commands from an application’s Edit menu. Following is a brief description of the standard clipboard commands.
Cut | Places a copy of the current selection on the clipboard and deletes the selection from the document. The previous content of the clipboard is destroyed. |
Copy | Places a copy of the current selection on the clipboard. The document remains unchanged. The previous content of the clipboard is destroyed. |
Paste | Replaces the current selection with the content of the clipboard. The content of the clipboard is not changed. |
Delete | Deletes the current selection from the document. The content of the clipboard is not changed. This command does not involve the clipboard, but it should appear with the clipboard commands on the Edit menu. |
Clipboard Sequence Number
The clipboard for each window station has an associated clipboard sequence number. This number is incremented whenever the contents of the clipboard change. To obtain the clipboard sequence number, call the GetClipboardSequenceNumber function.
Clipboard Viewers
A clipboard viewer is a window that displays the current content of the clipboard. The clipboard viewer window is a convenience for the user and does not affect the data-transaction functions of the clipboard.
Typically, a clipboard viewer window can display at least the three most common formats: CF_TEXT, CF_BITMAP, and CF_METAFILEPICT. If a window does not make data available in any of these three formats, it should provide data in a display format or use the owner-display format.
A clipboard viewer chain is the linking together of two or more entities so that they are dependent upon one another for operation. This interdependency (chain) allows all running clipboard viewer applications to receive the messages sent to the current clipboard.
The following topics are discussed in this section.
Clipboard Viewer Windows
A window adds itself to the clipboard viewer chain by calling the SetClipboardViewer function. The return value is the handle to the next window in the chain. To retrieve the handle to the first window in the chain, call the GetClipboardViewer function.
Each clipboard viewer window must keep track of the next window in the clipboard viewer chain. When the content of the clipboard changes, the system sends a WM_DRAWCLIPBOARD message to the first window in the chain. After updating its display, each clipboard viewer window must pass this message on to the next window in the chain.
Before closing, a clipboard viewer window must remove itself from the clipboard viewer chain by calling the ChangeClipboardChain function. The system then sends a WM_CHANGECBCHAIN message to the first window in the chain.
Display Formats
A display format is a clipboard format used to display information in a clipboard viewer window. A clipboard owner that uses a private or registered clipboard format, and none of the most common standard formats, must provide data in a display format for viewing in a clipboard viewer window. The display formats are intended for viewing only and must not be pasted into a document.
The four display formats are: CF_DSPBITMAP, CF_DSPMETAFILEPICT, CF_DSPTEXT, and CF_DSPENHMETAFILE. These display formats are rendered in the same way as the standard formats, which are: CF_BITMAP, CF_TEXT, CF_METAFILEPICT, and CF_ENHMETAFILE.
Owner Display Format
For a clipboard owner that does not use any of the common standard clipboard formats, an alternative to providing a display format is to use the owner-display (CF_OWNERDISPLAY) clipboard format.
By using the owner-display format, a clipboard owner can avoid the overhead of rendering data in an additional format by taking direct control over painting the clipboard viewer window. The clipboard viewer window sends messages to the clipboard owner whenever a portion of the window must be repainted or when the window is scrolled or resized.
Работа с буфером обмена в JavaScript с использованием асинхронного API Clipboard
Существует новое API JavaScript, предназначенное для организации асинхронного доступа к буферу обмена с использованием спецификации, которая всё ещё находится на этапе разработки. До сих пор в веб-разработке стандартным способом копирования текста в буфер обмена является подход, предусматривающий использование метода document.execCommand. Основной недостаток этого подхода заключается в том, что это — синхронная блокирующая операция. Асинхронное API для работы с буфером обмена основано на промисах, одной из его задач является устранение этого недостатка. Оно призвано дать веб-разработчикам более простое в использовании унифицированное API для работы с буфером обмена. Кроме того, это API спроектировано с учётом возможности поддержки множества типов данных, а не только text/plain.
Запись данных в буфер обмена
Запись данных в буфер обмена — простая операция, реализуемая посредством вызова метода writeText объекта clipboard с передачей ему соответствующего текста.
Чтение данных из буфера обмена
Для того чтобы прочитать данные из буфера обмена, используется метод readText . В целях повышения безопасности, помимо того, что страница, читающая данные из буфера обмена, должна быть открыта в активной вкладке браузера, пользователь должен предоставить ей дополнительное разрешение. Браузер автоматически запросит это разрешение при первом вызове readText .
Практический пример
Разберём простой пример взаимодействия с буфером обмена из JavaScript. Он будет работать лишь в поддерживаемых браузерах. Если хотите, можете своими силами доработать его, добавив механизмы, позволяющие ему функционировать в браузерах, которые пока не поддерживают API Clipboard. Посмотреть, как всё это работает, можно на странице оригинала статьи, в разделе Simple Demo.
А вот — JS-код, который отвечает за работу с буфером обмена.
Как видите, всё тут устроено очень просто. Единственное место, над которым пришлось немного поработать — это код для работы с кнопкой копирования, где мы сначала проверяем, что нам есть что копировать, а затем ненадолго меняем текст кнопки и очищаем поле ввода после успешного завершения операции копирования.
Будущее API Clipboard
Рассматриваемое API описывает более общие методы write и read , позволяющие работать с данными, отличающимися от обычного текста, в частности — с изображениями. Например, использование метода read может выглядеть так:
Обратите внимание на то, что эти методы пока не поддерживаются ни одним из существующих браузеров.
Проверка возможностей браузера
Предположим, вы создали веб-проект, некоторые функции которого полагаются на возможности по работе с буфером обмена. Учитывая то, что API Clipboard в настоящий момент поддерживает лишь один браузер, в подобном проекте нелишним будет предусмотреть альтернативные способы работы с буфером обмена. Например — метод, основанный на execCommand . Для того чтобы понять, поддерживает ли браузер то, что нам нужно, можно просто проверить наличие объекта clipboard в глобальном объекте navigator :
Итоги
Полагаем, унифицированный механизм работы с буфером обмена — это полезная возможность, поддержка которой в обозримом будущем появится во всех основных браузерах. Если данная тема вам интересна — взгляните на этот материал Джейсона Миллера.
Уважаемые читатели! Какие варианты использования API Clipboard кажутся вам самыми перспективными?