Контекстное меню, буфер обмена и основные операции в Windows
С каждым файлом, папкой или их значками в Windows можно проделывать множество различных операций, таких как, открытие, копирование, удаление, создание ярлыка и прочее. Их число и разнообразие напрямую зависит от используемого объекта. Например, папка и файл, различаются по своей сути и назначению, а это значит, что есть операции, которые можно производить только с файлом или только с папкой.
Именно поэтому, для упрощения управления компьютером, разработчики Windowsи другого программного обеспечения активно используют очень полезную функцию – Контекстное меню. Оно появляется по щелчку правой кнопки мыши на любом объекте, а так же в любой области экрана или окна. Контекстное меню содержит список основных действий, которые вы можете выполнить в данный момент времени. Пользователю остается лишь выбрать нужное и щелкнуть по нему уже левой кнопкой мыши.
Рассказать обо всех возможных пунктах контекстного меню в рамках одного материала довольно не просто. Причиной тому служит тот факт, что оно может содержать совершенно разные команды, количество и функционал которых зависит от того откуда вы его вызвали и установленных программ в системе. Например, если у вас установлен антивирус, то щелкнув правой кнопкой мыши на любом файле, в появившемся контекстном меню вы увидите пункт быстрой проверки его на вирусы.
Пример окна контекстного меню
И все же существуют действия, которые можно обнаружить практически в любом контекстном меню, вне зависимости от того, где вы его вызвали. Но перед тем как мы их рассмотрим, сначала давайте познакомимся с одним важным понятием – Буфер обмена.
Буфер обмена – это промежуточное хранилище данных, предоставляемое операционной системой при копировании информации или обмена ей между приложениями. То есть это такой своеобразный «карман» Windows, в который пользователь, сначала может поместить определенную информацию (скопировать), а потом в любой момент ее оттуда достать (вставить). Данные содержащиеся в буфере обмена можно вставлять неограниченное количество раз. При копировании новой информации в буфер обмена, его старое содержимое удаляется.
Теперь, когда мы определили, что такое буфер обмена, самое время вернуться к самым распространенным пунктам контекстного меню, которые являются основными операциями, производимыми в системе Windows.
Вырезать – с помощью этого действия выбранный элемент (файл, папка, значок, ярлык, кусок выделенного текста и так далее) удаляется из своего бывшего месторасположения и помещается в буфер обмена. Эта операция пригодится вам в том случае, если вы решили, например, переместить файл из одной папки в другую или часть текста из одного места документа в другое.
Копировать – операция, очень похожая на предыдущую. Только в отличие от команды Вставить, в буфер обмена помещается не сам объект, а его копия. Это значит, что выбранный элемент не удаляется из своего месторасположения.
Вставить – действие, обратное Вырезать и Копировать. То есть объект из буфера обмена помещается в выбранное место при этом, не удаляясь оттуда.
Удалить – операция, удаляющая объект без помещения его в буфер обмена.
Переименовать – действие, позволяющее изменить имя файла или папки.
Открыть – команда, аналогичная двойному щелчку левой кнопки мыши и позволяющая запускать приложения, открывать файлы (документы, изображения и прочие) или папки.
Создать – действие, позволяющее в выбранном месте создать новый объект, например документ или папку. Этот пункт меню появится только том случае, если курсор мыши буте находится на свободном поле рабочего стола или открытого окна папки, то есть не на значке.
Создать ярлык – команда, позволяющая создать ярлык выбранного объекта.
Свойства – пункт меню, позволяющий узнать об объекте немало полезной информации, будь то программа, документ или одна из панелей Windows. Например, Свойства файла покажут, его тип, размер, месторасположение на компьютере, дату создания, название программы, с помощью которой его можно открыть и многое другое. Еще одной важной функцией, которой обладает эта команда, является возможность изменять собственные свойства выбранного объекта. Например, вызовите контекстное меню, щелкнув на значке Компьютер (Мой компьютер), расположенного на рабочем столе и выберите пункт Свойства. Перед вами откроется окно, открывающее доступ к различным параметрам и настройкам системы. Таким образом, вы сможете самостоятельно изменять свойства Windows.
Теперь, попробуйте применить полученные знания на практике. Создайте самостоятельно на рабочем столе новый текстовый файл, а затем новую папку. Переименуйте их на собственное усмотрение. Затем попробуйте в новую папку скопировать и вырезать созданный файл, а также применить к нему другие возможные действия. В заключении, понаблюдайте, как изменяется содержание контекстного меню, в зависимости от того, из какого места вы его вызываете, а так же попробуйте изучить свойства различных объектов.
Источник
Как выжать максимум из буфера обмена: программы и лайфхаки
Скопировать и вставить — одна и самых популярных парных команд. Ее используют при работе с файлами и папками, в графических и текстовых редакторах. Но мало кто знает, сколько возможностей открывает буфер обмена, где временно хранятся скопированные элементы. Надеемся, информация в этой статье окажется полезной и поможет упростить жизнь и обычным пользователям ПК, и тем, кто работает с профессиональным ПО.
Что такое буфер обмена
Буфер обмена представляет собой временное хранилище — «склад» данных. Технически это часть оперативной памяти, которая используется для переноса данных между приложениями. С буфером обмена умеют работать все приложения, написанные под операционную систему Windows. ОС и отдельные программы обращаются к буферу при выполнении операций копирования, вырезания и вставки. Интересно, что система автоматически распознает формат данных, которые отправляются в буфер, и затем использует его для вставки. Например, если вы работаете в Word’e и скопировали фрагмент текста, то его вы и получите после вставки. Причем неважно, куда вы его поместите — в такой же документ или, например, в текст письма, открытого в браузере. Аналогично с изображениями — если скопировали растровую картинку, то на выходе вы получите ее же, а не набор символов. Учтите, что программы «понимают», какие данные находятся в буфере, и могут распоряжаться ими по-разному в зависимости от форматов, которые поддерживаются этим ПО.
Элементы, скопированные в буфер, можно вставлять неограниченное число раз.
В старых версиях Windows (до v. 8.1) содержимое буфера обмена было легко увидеть с помощью штатных средств — программы clipbrd.exe, которая располагалась в папке C:\WINDOWS\system32\. Сейчас этой утилиты нет в стандартной поставке ОС от Microsoft, но ее можно скачать с любого доверенного источника и запустить на компьютере. Если вы что-то скопируете в буфер обмена, утилита это покажет.
У буфера обмена есть одно не очень приятное свойство — он «одноразовый». Информация, которая в нем хранится, очищается при следующей операции копирования/вырезания или в момент выключения компьютера. Но это ограничение можно обойти, используя специальный софт или дополнительные инструменты знакомых программ — например, того же Microsoft Word.
Комбинации клавиш для работы с буфером обмена
Многие пользователи копируют и вставляют объекты с помощью мыши, тачпада на ноутбуке или через контекстное меню. Намного удобнее и быстрее делать это комбинациями клавиш. Вот те из них, которые напрямую связаны с буфером обмена:
- Ctrl+A — выделить все;
- Ctrl+C (или Ctrl+Ins)– копировать в буфер обмена;
- Ctrl+X (или Shift+Del) — вырезать;
- Ctrl+V (или Shift+Ins)– вставить.
Под эти действия можно настроить дополнительные кнопки мыши, если она поддерживает такие функции.
Программы для работы с буфером обмена
Существует отдельная группа программ-утилит, которые называются менеджерами буфера обмена. Они помогут пользователям, которые часто и помногу работают с текстами или однотипными данными — редакторам, журналистам, верстальщикам, бухгалтерам. С помощью менеджеров буфера обмена можно заметно ускорить ввод данных и избежать опечаток или ошибок. Например, многие утилиты работают с шаблонами и хранят базу часто используемых текстовых фрагментов.
Clipdiary
Производитель называет Clipdiary «незаменимым помощником для ведения истории скопированных данных». Она не только запоминает скопированные и вырезанные элементы, но и позволяет выполнять над ними различные действия. История хранится в отдельном файле, потому у вас всегда будет доступ к нужным данным. Представьте ситуацию: вы скопировали большой текстовый фрагмент и закрыли его источник (например, веб-сайт), как вдруг в доме отключили электричество. В обычной ситуации этот фрагмент просто улетучится из оперативной памяти, так как она очистится при перезагрузке ПК. С Clipdiary этого не произойдет: вы найдете нужный текст в истории программы.
Разобраться с интерфейсом Clipdiary просто — на главном экране расположены два окна с вкладками «История буфера обмена» и «Шаблоны». В истории хранятся тексты, ссылки, изображения, файлы и остальные форматы буфера обмена, а шаблоны — это заготовки, которые используются чаще всего.
Дополнительные возможности: программа поддерживает шифрование (AES-256), работу с метками (можно выделять «звездочкой»), поиск по данным, с которыми вы работали несколько дней/недель и месяцев назад. Последнее стало возможным благодаря тому, что история буфера обмена Clipdiary сохраняется после перезагрузки компьютера.
Где скачать: http://clipdiary.com/rus (бесплатно для некоммерческого использования).
CLCL
Это простая и легкая утилита, которая не требует инсталляции. Правда, отсюда следует ее главный минус — она не умеет запускаться одновременно с ОС, поэтому вам придется самостоятельно добавить ее в автозагрузку, чтобы не запускать ежедневно в ручном режиме.
CLCL представляет собой утилиту кэширования буфера обмена. Она висит в системном трее и непрерывно отслеживает изменение буфера. Операции копирования и вырезания записываются в журнал утилиты, который доступен для просмотра в левой части окна, основные данные видны в правой его части. Из других функций реализовано копирование напрямую из журнала, импорт сохраненных данных в DAT-файл, изменение сортировки данных в окне, удаление отдельных записей. Для каждого приложения можно настроить отдельные комбинации клавиш для вставки объектов из буфера обмена, также поддерживаются плагины, которые расширяют возможности утилиты CLCL. Данные, которым вы пользуетесь чаще всего, можно группировать: например, объединять адреса электронной почты, номера телефонов, ссылки на профили в соцсетях и т. п.
Clipboard Magic
Еще одна небольшая утилита, которая отслеживает состояние буфера обмена Windows и обновляет его по мере появления новых фрагментов, которые называются «клипами». Клипы можно сортировать, редактировать, удалять и даже создавать прямо в приложении. Поддерживается работа со списками.
Другие утилиты для работы с буфером обмена (распространяются по лицензии): ClipMate, Clip Plus, TrayMan.
Как работать с буфером обмена Microsoft Office
Если вы активно пользуетесь продуктами Microsoft Office, вам наверняка пригодятся их встроенные инструменты для работы с буфером обмена. Написанное ниже справедливо для Word для Office 365 Word 2019, 2016 и 2013.
Пункт с названием «Буфер обмена» доступен на вкладке «Главная», в правом нижнем углу — достаточно щелкнуть по значку со стрелкой, чтобы слева в отдельном окне открылось его содержимое. Попробуйте скопировать фрагмент текста или изображение — и они сразу появятся в этом окне. Последние скопированные/вырезанные данные всегда будут находиться вверху списка. Чтобы воспользоваться фрагментом из буфера, установите курсор в нужное вам место и выберите в списке этот фрагмент. Если нужно вставить все элементы, которые хранятся в буфере, щелкните по кнопке «Вставить все». Для удаления всех текстовых и графических фрагментов воспользуйтесь кнопкой «Очистить все».
Буфер обмена в продуктах Microsoft поддерживает такие параметры: автоматическое отображение в окне, открытие по двойному нажатию комбинации CTRL+C, сбор данных без отображения их в буфере, показ значка утилиты на «Панели задач» (постоянно или только при копировании данных).
Хотите использовать MS Office 365 на выгодных условиях? Оформите подписку на пакет в личном кабинете пользователя ОнЛайм. Вы получите полный набор программ для работы в офисе и дома, с любых устройств и всех операционных систем. Дополнительно дарим 60 минут (ежемесячно) бесплатных звонков по Skype и 1 ТБ в облаке OneDrive для каждого пользователя.
Несколько слов о Punto Switcher
Наверняка вы слышали или используете эту популярную утилиту для автоматического переключения раскладки клавиатуры. Но даже опытные пользователи не доходят до тонких настроек, где как раз и заложена возможность работы с буфером обмена.
Перейдите в раздел «Общие» на вкладку «Дополнительные» и поставьте галочку напротив «Следить за буфером обмена». Дальше укажите комбинацию клавиш для доступа к его истории — это можно сделать в разделе «Горячие клавиши» в пункте «Показать историю буфера обмена». Теперь по нажатию на выбранную комбинацию вы будете видеть окно с ранее скопированными текстовыми фрагментами. Чтобы выбрать нужный фрагмент, просто кликните по нему мышью.
Использовать Punto Switcher как альтернативу менеджеру буфера обмена выгодно — вам не придется устанавливать и разбираться с настройками дополнительного ПО. Но учитывайте, что эта программа работает только с текстовыми фрагментами. Если вам захочется извлечь из памяти буфера обмена графическое изображение, Punto Switcher не поможет.
Программа ClipboardNotifier подаст сигнал, если текст или другой объект не скопировались в буфер обмена Windows (т. е. команда Ctrl + C не сработала).
Советы по работе с буфером обмена
Как очистить содержимое буфера
Вы скопировали большой объем данных в буфер обмена (например, фильм с компьютера на флеш-накопитель), и эти данные остались в памяти. А так как они занимают часть ОЗУ, то другие программы могут работать медленно. Например, скопированный фильм весил 1,5 Гб, а на компьютере установлена планка памяти на 4 Гб. Соответственно, пока фильм будет находиться в буфере обмена, приложения и ОС смогут использовать только чуть больше половины объема ОЗУ!
Вот как можно очистить буфер обмена:
- воспользоваться одной из программ, которые мы рассмотрели выше;
- заполнить буфер обмена другими данными — например, скопировать несколько символов;
- в командной строке ввести echo off | clip и выполнить команду (для Windows 10).
Как обезопасить себя от мошенников
Буфер используются десятки, сотни приложений в день, а рядовой пользователь редко задумывается о том, как это может угрожать его безопасности. Например, вы часто используете пароль к одному сервису, и он периодически оказывается в буфере обмена. Состояние последнего отслеживают многие программы, и среди них может оказаться мошенническое ПО, которое собирает персональные данные. Это чревато передачей персональных данных третьим лицам, которые могут использовать их как угодно: для рассылки спама, для обращения к вашим друзьям в мессенджерах и соцсетях с просьбой занять денег. А если к мошенникам попали платежные данные, готовьтесь к тому, что кредитная карта или электронный кошелек могут внезапно оказаться пустыми.
Возьмите за правило не копировать пароли и другую критически важную информацию, а набирать ее вручную. Одновременно вашей безопасности помогают приложения и сервисы с хорошей репутацией. Например, менеджеры паролей очищают буфер обмена после того, как пароль вставлен в форму, а некоторые веб-сайты не позволят вам копировать логины и пароли — вместо этого вы должны будете вводить их вручную.
Источник
Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров382
Когда необходимо обеспечить взаимодействие c данными вашего приложения, можно использовать специальные механизмы операционной системы. Если говорить о приложениях WIndows, то для них доступно множество различных механизмов, но в рамках этой статьи коснемся только некоторых из них:
-
Открытие файлов через ассоциацию с приложением
Это классический метод, когда файл открывается двойным щелчком, при этом в системе должно быть определено, какая программа обрабатывает открытие файла данного расширения. В результате будет автоматически запущено связанное с расширением файла приложение и система передаст ему путь к файлу в форме параметра командной строки.
-
Реализация собственного протокола в системе
Этот механизм позволяет приложениям обрабатывать специфические ссылки. Например, при установке мессенджера Telegram в Windows регистрируется протокол
tg://. Когда пользователь нажимает на такую ссылку в браузере или документе, система понимает, что ее должен обработать клиент Telegram, поскольку информация о протоколе хранится в реестре Windows. Такая возможность реализуется по аналогии с типовыми протоколами, такими какhttp://,mailto:илиftp://, — разработчики могут создавать собственные, кастомные протоколы для запуска приложений и передачи в них данных. -
Механизм Drag & Drop (перетаскивание файлов)
Drag In (перетаскивание внутрь) — когда пользователь перетаскивает файл в окно приложения, то программа его открывает.
Drag Out (перетаскивание наружу) — приложение позволяет пользователю «вытянуть» объект за пределы окна приложения, передав его в другую программу или создав файл-ярлык в Windows.
-
Копирование и вставка данных через буфер обмена
Буфер обмена Windows позволяет приложениям передавать данные между собой с помощью копирования и вставки. Информация в буфере может храниться в разных форматах: простой текст, изображения, файлы, специальные ссылки и даже структурированные данные в виде XML или JSON. Возможна регистрация и использование своего уникального формата данных.
Поскольку я сейчас работаю над проектами, связанными с ЛОЦМАН:PLM, на примере десктопного приложения ЛОЦМАН:PLM Клиент покажу, где применяются эти механизмы. А в примерах кода более подробно продемонстрирую, как можно реализовать их в приложениях, написанных в Lazarus IDE.
ЛОЦМАН:PLM — это решение для управления инженерными данными и жизненным циклом изделий, разрабатываемое компанией АСКОН. Система предоставляет инструменты для работы с данными на всех этапах жизненного цикла продукта.
Десктопный клиент ЛОЦМАН:PLM — это классическое Windows-приложение, которое позволяет пользователю работать с базой данных комплекса PLM, управляя проектами и информационными объектами. В зависимости от своей роли пользователь может взаимодействовать с определёнными типами объектов, обеспечивающих поддержку различных этапов жизненного цикла изделия. Это могут быть объекты системной инженерии, а также конструкторской или технологической подготовки производства.
ЛОЦМАН:PLM Клиент работает с понятием информационного объекта, который имеет идентификационные данные, позволяющие ссылаться на него. Для передачи этих данных и последующего поиска соответствующего объекта в приложении реализованы специальные функции.
Примеры функций работы с объектом в ЛОЦМАН:PLM Клиент
Клиент поддерживает копирование и вставку объектов через буфер обмена. Если в дереве выбрать объект и скопировать его в буфер обмена, через пункт контекстного меню или с помощью горячих клавиш, то данные в буфере обмена будут сохранены в специальном формате LoodsmanBuffer.
Для анализа содержимого буфера обмена можно воспользоваться утилитой Free Clipboard Viewer, она позволит увидеть как там хранится информация скопированная в него. Утилита покажет, что в записи LoodsmanBuffer хранится информация в виде JSON-объекта следующего содержания:
Сам формат LoodsmanBuffer поддерживается только ЛОЦМАН:PLM, вставить такие данные в другие приложения не получится.
Однако, для передачи информации о конкретных объектах во внешние программы или пересылки ее пользователям, реализован механизм создания специальных ссылок. Выделив объект в дереве, можно воспользоваться командой «Инструменты → Ссылки → Копировать ссылку», после чего в буфер обмена будет помещена строка следующего вида: ask:Loodsman.URL?Action=Navigate,params=NTF8REJfTkFNRXw0ODR8NDg1fHw0ODV8NDU4fDQ3OXw1MDR8NTA1
Здесь можно видеть что эта ссылка зарегистрированного протокола, которая имеет специальный формат, в которой ask: — это имя протокола, который обрабатывает ЛОЦМАН:PLM Клиент. Параметр Action=Navigate говорит приложению о том, что нужно перейти в дереве объектов на определенный объект, а params= содержит закодированную в Base64 строку, содержащую идентификационные данные.
Декодированная строка имеет следующий вид: 51|DB_NAME|484|485||485|458|479|504|505, Здесь в строке, через разделитель | указаны имя базы данных и уникальные идентификаторы объектов: выбранного и его родительского.
Ссылка может быть вставлена в текст и будет обрабатываться как гиперссылка. При переходе по этой ссылке система автоматически запустит ЛОЦМАН:PLM Клиент, и передаст ему ее в качестве параметра. Клиент в свою очередь обработает полученные данные, найдет в дереве и выделит требуемый объект.
Помимо копирования в буфер обмена, имеется еще один способ создания ссылки на объект — это перетаскивание объекта за пределы приложения. В этом случае ЛОЦМАН:PLM Клиент генерирует специальный файл-ярлык (.lnk), который сохраняется в том месте, где пользователь отпустит кнопку мыши после перетаскивания.
Внутри файла хранится информация в следующем виде:
[InternetShortcut]
URL=ask:Loodsman.URL?Action=Navigate,params=MHxBS19QbG0wMXwyODk4fDEwMTI=
IconIndex=0
IconFile=C:\Program Files (x86)\ASCON\Loodsman\Client\Loodsman.exe
При двойном клике по ярлыку, как и при щелчке по ссылке вида ask: автоматически запускается ЛОЦМАН:PLM Клиент, или активируется уже запущенный экземпляр. А далее он получает из ярлыка необходимые данные и отображает окно с нужным объектом.
Файл-ярлык с расширением .lnk — это стандартный ярлык в системе Windows, предназначенный для быстрого доступа к программам, файлам, папкам или сетевым ресурсам. Его обработку выполняет сама система. Однако, помимо этого, ЛОЦМАН:PLM может работать с собственными ярлыками, поскольку при установке регистрируются следующие типы файлов, которые открываются с помощью приложения:
-
.lnd -Loodsman.LinkDocument (Ссылка на документ ЛОЦМАН:PLM)
-
.lnf — Loodsman.LinkFile (Ссылка на файл ЛОЦМАН:PLM)
-
.lno — Loodsman.LinkObject (Ссылка на объект ЛОЦМАН:PLM)
Выше были приведены примеры применения системных механизмов на примере ЛОЦМАН:PLM, а далее будет приведена информация для реализации этих механизмов в собственном приложении.
Реализация механизмов в собственном приложении
В качестве примеров буду использовать код из заглушки, которая была написана для партнёров, разрабатывающих механизм интеграции с ЛОЦМАН:PLM. Заглушка позволяла протестировать нужный функционал без установки и развёртывания всего комплекса PLM на машинах разработчиков. Конечно, после отладки основных взаимодействий между приложениями, комплекс PLM был развернут на отдельной машине и уже там тестировалась совместная работа в полном объёме.
Открытие файла на двойной клик
Для поддержки функции открытия файла на двойной клик, необходимо выбрать для него расширение, которое желательно не занято другими приложениями, и добавить записи в реестр. А в приложении реализовать обработку параметров командной строки. Для того чтобы иконка документа имела свой вид, необходимо добавить в ресурсы самого приложения иконку, на которую можно будет сослаться.
Файл приложения
Для внесения в заглушку тестовых данных, которые были сгенерированы с помощью отчета из базы данных ЛОЦМАН:PLM, они были помещены в файл с расширением .lpf. Данные внутри файла представляют собой JSON массив объектов.
Добавление записи в реестр
Обычно все действия, связанные с добавлением записей в реестр Windows, прописываются в установщике приложения. Однако возможен и вариант создания REG-файла, который нужно было импортировать вручную. При составлении параметров записи важно учитывать, для какого пользователя вносятся изменения: если запись добавляется только для текущего пользователя, то используется ветка HKCU (HKEY_CURRENT_USER). Если же требуется реализация изменений для всех пользователей системы, то необходимо работать с веткой HKLM (HKEY_LOCAL_MACHINE), но это требует административных прав.
В установщиках приложений для указания пути до приложения обычно используются макросы, а в файле REG приходится указать полный путь до приложения заранее. В приведённом ниже примере предполагается, что приложение будет расположено в папке C:\tmp\loo_plug\, а иконка для файла будет браться из ресурса 1.
Пример добавления записей в реестр:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\.lpf]
@="loo_plug_file"
[HKEY_CURRENT_USER\Software\Classes\loo_plug_file]
@=""
"EditFlags"=dword:00000000
"BrowserFlags"=dword:00000008
[HKEY_CURRENT_USER\Software\Classes\loo_plug_file\DefaultIcon]
@="\"C:\\tmp\\loo_plug\\loo_lpug.exe\",1"
[HKEY_CURRENT_USER\Software\Classes\loo_plug_file\shell]
[HKEY_CURRENT_USER\Software\Classes\loo_plug_file\shell\open]
@=""
[HKEY_CURRENT_USER\Software\Classes\loo_plug_file\shell\open\command]
@="\"C:\\tmp\\loo_plug\\loo_lpug.exe\" \"%1\""
Обработка передаваемых параметров командной строки
После внесения записи в реестр при двойном клике на файле с расширением .lpf система Windows будет запускать наше приложение и передавать путь к этому файлу в качестве аргумента командной строки. Поэтому необходимо, чтобы приложение корректно обрабатывало параметры командной строки, которые в него передаются.
Важно учитывать, что помимо пути к файлу могут передаваться и другие параметры с аргументами. Например, путь к файлу может быть не первым, а вторым или даже третьим аргументом. По этой причине при обработке параметров желательно анализировать их последовательно и выбирать тот, который соответствует нужному критерию — в нашем случае, заканчивается на «.lpf«.
В заглушке я включил обработку передаваемых параметров командной строки в процедуру, которая назначена на создание главной формы OnFormCreate.
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
param: string;
begin
for i := 1 to ParamCount do
begin
param := ParamStr(i);
if LowerCase(ExtractFileExt(param)) = '.lpf' then
begin
// Найден параметр с расширением .lpf
// Выполняется загрузка данных ...
end;
end;
end;
Открытие файла перетаскиванием
Открытие файла перетаскиванием на форму в самой заглушке не реализовывалось, но реализация такой функции достаточно проста. Для этого в настройках формы необходимо включить пункт AllowDropFiles, а далее создать функцию обработчика событий OnDropFiles . В функцию будет передан массив строк с путями до файлов, которые были перенесены на форму приложения. После фильтрации их можно передавать в функцию загрузки данных из файла.
Поддержка открытия ссылки собственного протокола
Для того чтобы обрабатывать собственный протокол, как и в случае с ассоциацией типа файла, необходимо внести записи в реестр. Для обработки протокола ASK приложением заглушкой, которое будет находиться по пути C:\tmp\loo_plug\, необходимо добавить в реестр следующие записи:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\ask]
"URL Protocol"=""
[HKEY_CURRENT_USER\Software\Classes\ask\DefaultIcon]
@="C:\\tmp\\loo_plug\\loo_lpug.exe,0"
[HKEY_CURRENT_USER\Software\Classes\ask\Shell]
[HKEY_CURRENT_USER\Software\Classes\ask\Shell\Open]
[HKEY_CURRENT_USER\Software\Classes\ask\Shell\Open\Command]
@="\"C:\\tmp\\loo_plug\\loo_lpug.exe\" \"%1\""
Поскольку ранее мы реализовали обработку только аргументов, оканчивающихся на «.lpf«, теперь необходимо добавить поддержку строк, начинающихся с «ask:«, и передавать такие строки в функцию, которая вернёт ИД объекта.
Пример кода функции, для сборки нужно включить в uses модуль base64
function ExtractAndDecode(const input: string; out ObjectID: Integer; out DatabaseName: string): Boolean;
var
paramsStart, paramsEnd: Integer;
paramsValue, decodedString: string;
elements: TStringArray;
begin
ObjectID := 0;
DatabaseName := '';
paramsStart := Pos('params=', input);
if paramsStart = 0 then Exit(False);
paramsStart := paramsStart + Length('params=');
paramsEnd := Length(input);
paramsValue := Copy(input, paramsStart, paramsEnd - paramsStart + 1);
decodedString := DecodeStringBase64(paramsValue);
if decodedString = '' then Exit(False);
elements := decodedString.Split(['|']);
if Length(elements) < 4 then Exit(False);
DatabaseName := elements[1];
try
ObjectID := StrToInt(elements[3]);
except
Exit(False);
end;
result:=True;
end;
Чтобы для каждой новой ссылки не запускался свой экземпляр приложения, нужно организовать передачу информации от вновь запускаемого дубликата в уже запущенное приложение. Такой вариант можно реализовать, используя связку Mutex и Named Pipes, но об этом расскажу в следуюoщей статье.
Создание ярлыка со ссылкой «вытягиванием» объекта
В Lazarus, к сожалению, отсутствует встроенная поддержка простого механизма «вытягивания» объектов за пределы формы, аналогичного механизму перетаскивания файлов из системы на форму. Однако для упрощения этой задачи, можно использовать модуль uShellDragDrop, который предоставляет готовые функции для реализации как вытягивания объектов за пределы формы, так и копирования их в буфер обмена.
Модуль был найден на форуме Lazarus в ветке, где участник форума под псевдонимом ASerge, представил этот модуль в ответ на запрос другого пользователя, желающего реализовать перетаскивание файлов из приложения Lazarus в другие программы, поддерживающие WM_DROPFILES.
Основная идея состоит в следующем:
-
На основе данных приложения создается временный файл.
-
С помощью функции DragandDropCopyComplete из модуля uShellDragDrop.pp этот файл передается в целевую директорию.
Файл, который мы создаём, представляет собой обычный INI-файл с расширением .URL, содержащий ссылку на нужный ресурс или действие. Пример содержимого такого файла:
[InternetShortcut]
URL=ask:Loodsman.URL?Action=Navigate,params=MHxBS19QbG0wMXwyODk4fDEwMTI=
IconIndex=1
IconFile=C:\tmp\loo_plug\loo_lpug.exe
Что записано внутри файла:
-
URL указывает на специальный протокол ask:, который будет обработан соответствующим приложением.
-
IconFile задаёт путь к иконке, которая будет использоваться для ярлыка.
После выполнения функции DragandDropCopyComplete, в целевой директории появится копия временного .URL-файла — полноценный ярлык. При его запуске будет автоматически вызвано приложение, ответственное за обработку протокола ask:.
Заключение
Надеюсь, приведенные выше примеры пригодятся вам для понимания того, как организовать взаимодействие между пользователем, системой и вашим приложением. А в следующем материале я продолжу эту тему и расскажу, как организовать передачу данных между экземплярами приложения с помощью Mutex и Named Pipes, чтобы избежать запуска дублирующихся копий клиента и обеспечить «бесшовную» обработку новых запросов.
- Подробности
-
Тесты по информатике с ответами -
-
Просмотров: 30743
Единицей измерения информации является:
a) бод
b) бит
c) ампер
d) герц
Какая система счисления используется при представлении числа в памяти компьютера:
a) десятичная
b) двоичная
c) троичная
d) шестидесятеричная
Какие из перечисленных ниже устройств являются устройствами ввода
a) клавиатура
b) дискета
c) сканер
d) дисплей
Какие из перечисленных ниже устройств являются устройствами вывода
a) жесткий диск
b) дискета
c) дисплей
d) принтер
Какие из перечисленных ниже устройств являются устройствами хранения информации
a) диск
b) дискета
c) сканер
d) принтер
Обработку данных производит:
a) процессор
b) жесткий диск
c) сервер
d) сканер
При стандартных установках Windows одинарным щелчком левой кнопкой мыши можно:
a) выделить объект
b) установить текущее положение указателя ввода информации
c) выделить слово в текстовом документа
d) отказаться от выбранной команды
При стандартных установках Windows двойным щелчком левой кнопкой мыши можно:
a) выделить объект
b) открыть объект
c) выделить слово в текстовом документе
d) установить текущее положение указателя ввода информации
При стандартных установках Windows одинарным щелчком правой кнопкой мыши можно:
a) вызвать контекстное меню
b) открыть объект
c) выделить слово в текстовом документе
d) установить текущее положение указателя ввода информации
Содержимое контекстного меню зависит от
a) состояния здоровья пользователя
b) места расположения указателя мыши в момент щелчка правой кнопки
c) числа открытых на рабочем столе окон
d) размера выделенной области
Какое из устройств наиболее отрицательно влияет на здоровье человека
a) устройство чтения компакт-диска
b) аудио-колонки
c) дисплей
d) жесткий диск
Понятие «Операционная система» означает:
a) комплекс программ, обеспечивающих работу компьютера
b) программа подготовки больных к сложным операциям
c) программа, обеспечивающая интерфейс: пользователь-компьютер
d) программа, обеспечивающая возможность разработки сложных документов
С точки зрения Пользователя компьютера файл (file) это –
a) единица хранения информации на устройстве
b) Ящик для хранения инструкций по использованию инструкций
c) Носитель информации
d) Место хранения для нескольких документов
Понятие «Папка» означает:
a) элемент файловой системы
b) несколько файлов, хранящихся в одном месте
c) Ящик для хранения инструкций
d) Документ, хранящийся на компакт-диске
Папки могут содержать
a) Только файлы
b) Только папки
c) файлы и папки
d) Файлы и не более трех папок
Имя файла в файловой системе Windows может
a) иметь длину до 252 символов
b) использовать символы национального алфавита
c) содержать символы: точка, двоеточие, косая черта, звездочка, знак вопроса
d) начинаться с цифры
Расширение имени файла
a) сообщает о назначении файла
b) содержит сведения о числе обращений к файлу
c) указывается после имени и отделено от него символом «точка»
d) содержит сведения об авторе документа
при передаче документа на другой компьютер можно использовать:
a) главпочтамт
b) дискета, съемный жесткий диск
c) локальная сеть
d) почта Интернет
Для просмотра содержимого файловой системы используется:
a) «Мой компьютер»
b) «Проводник»
c) «проверка диска»
d) «сведения о системе»
Буфер обмена это
a) область памяти компьютера, предназначенная для временного хранения информации о текущих настройках операционной системы.
b) область памяти компьютера, предназначенная для временного хранения информации от конкретного приложения для ее дальнейшего использования (вставки) в этом и только в этом приложении.
c) область памяти компьютера, предназначенная для временного хранения информации для использования в различных приложениях.
d) область в памяти компьютера, куда помещаются копии объектов для временного хранения
e) Область памяти выделяемая специально для хранения конфиденциальной информации
В буфер обмена можно поместить
a) файл
b) папку со всеми включенными в нее объектами: файлами и папками
c) фрагмент текста
d) фрагмент рисунка
К помещению объекта в буфер обмена приводит операция:
a) выделить
b) вырезать
c) копировать
d) переместить
Для перевода дополнительного блока клавиатуры в цифровой режим нужно нажать клавишу или сочетание клавиш:
a) NumLock
b) CapsLock
c) этой частью клавиатуры лучше вообще не баловаться
d) Shift + CapsLock
e) Shift + NumLock
f) Tab
При отключении цифрового режима (NumLock)
a) компьютер не реагирует на нажатие клавиш дополнительной клавиатуры
b) дополнительная цифровая клавиатура работает как клавиши управления движением курсора
c) нажатие на любую клавишу дополнительной цифровой клавиатуры блокирует работу компьютера
d) дополнительная цифровая клавиатура работает как функциональная клавиатура
e) отключение режима NumLock не влияет на работу дополнительной цифровой клавиатуры
Для ввода заглавных букв нужно:
a) нажать на клавишу с изображением нужной буквы при прижатой клавише Shift
b) Включить режим CapsLock и набрать нужные символы
c) сделать это невозможно
d) набрать нужную букву дважды
e) нажать на клавишу с изображением нужной буквы при прижатой клавише Ctrl
Рабочий стол это:
a) место, куда установлен дисплей
b) подставка под клавиатуру
c) Изображение на экране дисплея с размещенными на нем элементами управления
d) Папка, хранящая документы пользователя.
Окно это:
a) объект на Рабочем столе, ограниченный прямоугольной рамкой
b) экран монитора
c) группа объектов на экране монитора, ограниченных прямоугольными рамками.
d) Серая полоса у края экрана монитора с размещенной на ней кнопкой ПУСК.
Увеличить размер окна до размера Рабочего стола можно
a) нажав на кнопку «Развернуть»
b) отбуксировать мышью одну из границ окна до размеров экрана
c) нажать на кнопку «Свернуть»
d) Нажать на кнопку «Закрыть»
e) дважды щелкнув мышью по строке заголовка (системной строке) окна
Панель задач
a) прижатая к какому-либо краю экрана (рабочего стола) полоса с отображенными на ней индикаторами, кнопками управления и значками активных приложений.
b) хаотично расположенные значки на экране
c) значок в левом верхнем углу окна приложения
d) Верхняя строка окна приложения, содержащая, в частности, имя программы-приложения.
Если свернуть окно, то
e) прекратится выполнение программы-приложения
f) окна приложения освободят рабочий стол, но соответствующее им приложение будет активно, и значок его останется на панели задач
g) окна приложения освободят рабочий стол, но соответствующее им приложение будет временно приостановлено, хотя значок его останется на панели задач
h) соответствующее ему приложение будет временно приостановлено, хотя окна приложения не освободит рабочий стол
восстановить окно значит
a) вернуть размер и положение на рабочем столе, которое было до «развертывания» или «свертывания»
b) продолжить работу остановленного приложения
c) продолжить работу программы после аварийного завершения
d) восстановить окно приложения после его завершения
Переместить окно на рабочем столе можно
a) захватив мышью его строку заголовка и отбуксировав в нужное место
b) последовательно изменяя его горизонтальные и вертикальные размеры
c) свернуть и развернуть окно несколько раз. Когда-нибудь оно займет нужную позицию на рабочем столе
d) Это сделать нельзя. Окна — неперемещаемые объекты.
Строка заголовка
a) содержит информацию об окне приложения и кнопки управления окном
b) строка специальных символов для служебных целей
c) Содержит только имя обрабатываемого приложением объекта
d) Показывает статистические данные об обрабатываемом в окне документе
e) Содержит инструменты «прокрутки» документа в окне.
Меню окна приложения
a) Состоит из доступных в приложении команд
b) Состоит из пунктов, содержащих команды приложения
c) Состоит из кнопок управления приложением
d) Показывает статистические данные об обрабатываемом в окне документе
e) Содержит инструменты «прокрутки» документа в окне.
Для работы с простыми текстовыми документами используется приложение
a) Блокнот
b) Адресная книга
c) Paint
d) Калькулятор
e) Проводник
3.4. Буфер обмена
При вырезании или копировании содержимое выделенного фрагмента (или объекта) помещается в буфер
обмена и становится доступным не только для работы в Word. Аналогично
вы можете вставить в документ Word текст или иные данные,
скопированные из другого приложения, с Интернет-страницы и др.
Операции, связанные с буфером обмена, относятся не только к текстовым
данным, но и к графическим объектам, гиперссылкам и т. д.
ВНИМАНИЕ. Текст, перемещенный или скопированный из
одного места документа в другое при помощи мыши, в буфер обмена не
заносится.
Буфер обмена в Microsoft Word 2007 позволяет хранить 24 объекта.
Если вы работаете в обычном режиме, то в буфере сохраняются только
последние скопированные данные. В расширенном же режиме можно работать
одновременно с 24 фрагментами данных.
Чтобы активизировать расширенный режим, нужно щелкнуть по кнопке в
виде стрелки, направленной вниз, в нижней части группы Буфер обмена на
вкладке Главная (рис. 3.10).
Рис.
3.10.
Кнопка для вызова области задач Буфер обмена
В области задач Буфер обмена (рис. 3.11) вы увидите первые слова
текстовых фрагментов и уменьшенные изображения графических объектов.
Чтобы пользователю было легче, возле каждого объекта есть пиктограмма,
показывающая тип объекта (документ Word, таблица Excel и др.).
Рис.
3.11.
Область задач Буфер обмена
По умолчанию при выполнении команды Вставить Word вставляет объект,
занесенный в буфер последним, причем вставляет в то место документа, в
котором установлен курсор. Область задач Буфер обмена позволяет
пользователю выбрать объект вставки. Чтобы вставить объект из буфера
обмена, достаточно установить курсор в необходимом месте и щелкнуть на
нужном фрагменте в области задач.
Чтобы отключить расширенный режим работы с буфером обмена,
выполните одно из следующих действий:
- закройте область задач Буфер обмена, щелкнув на кнопке Закрыть (рис. 3.12);
Рис.
3.12.
Кнопка Закрыть в области задач Буфер обмена - закройте область задач Буфер обмена, щелкнув на кнопке Параметры области задач и выбрав пункт Закрыть (рис. 3.13)
Рис.
3.13.
Закрытие области задач - щелкните правой кнопкой мыши на значке Буфер обмена, который находится в области уведомлений (справа на Панели задач ), и выберите команду Прекратить сбор данных (рис. 3.14).
Рис.
3.14.
Отключение расширенного режима работы буфера обмена
Упражнение 3.3. Использование буфера обмена
Буфер обмена в Microsoft Office — это мощное средство работы с
данными, умело используя которое, можно сделать работу максимально
эффективной. Рассмотрим пример работы буфера обмена с несколькими
фрагментами данных.
Допустим, имеется некоторый текст, в котором то и дело встречаются
термины, значение которых нужно уточнить. Из этих слов необходимо
составить список в отдельном документе. Как это сделать? Останавливать
чтение статьи на каждом термине и переключаться в другое окно
неудобно, ведь можно легко потерять нить повествования в тексте.
Используя возможности буфера обмена, выполнить такую операцию
несложно.
- Откройте документ, из которого нужно выписать термины. Щелкните по кнопке в виде стрелки, направленной вниз, в нижней части группы Буфер обмена на вкладке Главная. Если в буфере обмена находятся какие-то данные, то нажмите кнопку Очистить все (рис. 3.15).
Рис.
3.15.
Очищение буфера обмена от данных - Начинайте чтение текста. Выделите первое слово, которое необходимо занести в список терминов и скопируйте его одним из способов (рис. 3.16). Убедитесь, что фрагмент текста появился в буфере обмена.
- Скопируйте в буфер обмена все необходимые термины. После каждого копирования слова следите за тем, чтобы оно было помещено в буфер.
- Если вы ошиблись и ввели ненужный фрагмент данных, то подведите указатель мыши к его изображению в буфере обмена, щелкните на стрелке и в появившемся меню выберите команду Удалить (рис. 3.17).
Рис.
3.17.
Удаление из буфера обмена случайно скопированных данных - После добавления в буфер обмена всех необходимых терминов создайте новый документ или откройте файл, в который необходимо вставить список слов.
- Нажмите кнопку Вставить все в области задач Буфер обмена (рис. 3.18).
Рис.
3.18.
Кнопка Вставить все в области задач Буфер обмена - Убедитесь, что все данные вставлены из буфера обмена (рис. 3.19).
ВНИМАНИЕ. Помните, что одновременно в буфере обмена может
храниться 24 участка информации. Если их будет больше, то новые данные
будут вытеснять старые. Поэтому, собирая данные в буфер обмена,
следите за их количеством: информация о скопированных участках текста
содержится в заголовке области задач. В случае необходимости вставьте
данные, очистите буфер, а затем вернитесь к основному документу.
Всё, что нужно знать о полезной функции для более продуктивной работы.
Что такое журнал буфера обмена
Стандартный буфер, который все привыкли использовать через контекстное меню «Скопировать» и «Вставить» или через сочетания Ctrl + C, Ctrl + V, имеет лишь одну «ячейку памяти». Чего бывает очень мало. Начиная с Windows 10 Microsoft внедрила журнал буфера обмена, который умеет запоминать до 25 элементов. Копировать и вставлять при этом можно текст, ссылки, изображения и другой контент.
Как включить журнал буфера обмена Windows 10 и Windows 11
По умолчанию функция неактивна. Её можно активировать следующим образом.
Удерживая клавишу Win (с символом «окошка»), нажмите V на клавиатуре. Вы увидите предложение включить журнал буфера обмена с помощью соответствующей кнопки.
Если при нажатии Win + V ничего не происходит, то активировать функцию можно в настройках. Для этого сделайте правый клик по меню «Пуск» и выберите «Параметры». Далее в разделе «Система» → «Буфер обмена» включите тумблер как на скриншоте выше.
Как просмотреть буферы обмена Windows 10 и Windows 11
После включения система начнёт хранить всё, что вы копируете или вырезаете, в буфере обмена.
Для просмотра журнала нажмите Win + V. На экране отобразится плавающее окошко со списком сохранённых элементов, которое можно переместить в удобное место. Запомнить сочетание легко — как обычная вставка, только вместо Ctrl используется клавиша Win.
Как вставить куда-то скопированный элемент
Для вставки элемента в документ или, например, в строку поиска достаточно кликнуть по нужному тексту, ссылке или изображению в списке, после чего буфер автоматически закроется. Помимо этого можно использовать стрелки клавиатуры для навигации и Enter для вставки.
Как закрепить нужный элемент
Если вам часто приходится вставлять одинаковые данные вроде реквизитов, ссылок или номеров телефонов, можно закрепить их в буфере, чтобы они всегда были под рукой.
Для этого просто кликните по значку иголки напротив нужного элемента.
Как очистить журнал буфера обмена
Как упоминалось выше, в памяти буфера всего 25 ячеек. При их заполнении во время записи новых элементов самые старые стираются.
Каждую из них можно удалить по отдельности, кликнув на троеточие в списке и выбрав значок корзины. Для освобождения места во всём буфере используется кнопка «Очистить всё».
При этом буфер автоматически очищается после перезагрузки и выключения компьютера. Из памяти исчезают все элементы, кроме закреплённых.
