Полный список комбинаций клавиш на клавиатуре
Часто читая статьи в интернете или инструкцию по установке какой-либо программы, Вы можете встретить комбинации клавиш (Ctrl-C, Ctrl-V, Win-R, Alt-Tab, Alt-F4 и т.д.). И если Вы, до сих пор не знаете, что они значат, тогда Вы можете ознакомиться с ними в нашей статье.
В данной статье представлен, полный список комбинаций клавиш на клавиатуре, используемые не только в операционной системе Windows.
Разделы по работе с комбинациями клавиш:
- Основные комбинации клавиш на клавиатуре
- Горячие клавиши общего назначения
- Комбинации клавиш предназначенные для работы с текстом
- Комбинации клавиш для работы с файлами
- Комбинации клавиш для работы в проводнике
- Комбинации клавиш для работы с окнами
- Комбинации клавиш для работы с диалоговыми окнами
- Комбинации клавиш для работы в браузерах (Internet Explorer, Google Chrome, Mozilla)
- Специальные возможности
Основные комбинации клавиш на клавиатуре
Alt+Tab — Переключение между окнами
Win+Tab — Переключение между окнами в режиме Flip 3D
Win+Up — Развернуть окноWin+Down — Восстановить / Минимизировать окно
Win+Left — Прикрепить окно к левому краю экрана
Win+Right — Прикрепить окно к правому краю экрана
Win+Shift+Left — Переключиться на левый монитор
Win+Shift+Right — Переключиться на правый монитор
Win+Home — Минимизировать / Восстановить все неактивные окна
Win+Break(или Pause) — Запустить элемент Система из Панели Управления (пункт Свойства при нажатии правой кнопкой мыши на Компьютер в меню Пуск)
Win+Space — Показать рабочий стол
Win+B — Переход в область уведомлений(трей)
Win+D — Свернуть окна или восстановить все окна
Win+E — Запустить Проводник(Explorer)
Win+F — Запустить встроенный диалог поиска Windows
Win+Ctrl+F — Запустить Поиск по компьютеру из домена
Win+F1 — Запустить встроенный диалог Windows: Справка и Поддержка
Win+G — Отобразить гаджеты поверх всех окон
Win+L — Блокировка рабочей станции(текущего сеанса пользователя)
Win+M — Минимизировать все окна
Win+P — Отобразить дополнительные опции дисплея (расширить рабочий стол на 2 монитор и т.п.)
Win+R — Запустить диалоговое окно Выполнить
Win+Т — Выбрать первый элемент в панели задач (Повторное нажатие переключает на следующий элемент, Win+Shift+T — прокручивает в обратном порядке)
Win+U — Запустить Центр специальных возможностей (Ease of Access Center)
Win+X — Запустить Mobility Center
Win+цифра— Запустить приложение с панели задач (Win+1 запускает первое приложения слева, Win+2, второе, и т.к.)
Win + «+» — Увеличить масштаб
Win + «-« — Уменьшить масштаб
Ctrl + колесо мыши (вверх\вниз) на рабочем столе — увеличить\уменьшить иконки рабочего стола.
В Проводнике (Explorer):
Alt+P — Показать / Скрыть Область предпросмотра
Панель задач:
Shift + щелчок на иконке — Открыть новое окно приложения
Ctrl + Shift + щелчок по иконке — Открыть новое окно приложения с привилегиями администратора
Shift + щелчок правой кнопкой на иконке — Показать меню приложения
Shift + щелчок правой кнопкой на группе иконок — Показать меню, восстановить все / cвернуть все / Закрыть все
Ctrl + щелчок по группе икнонок — Развернуть все окна группы
Примечание
Клавиша Win находится между клавишами Ctrl и Alt с левой стороны (на ней нарисована эмблема Windows).
Клавиша Menu находится слева от правого Ctrl.
Комбинация «клавиша» + «клавиша» означает, что сначала надо нажать первую клавишу, а затем, удерживая ее, вторую.
Источник
Ctrl c ctrl v что это значит
Одним из важнейших навыков, отделяющих начинающего пользователя от «продвинутого», является способность применять «копипаст» – быстрое копирование и вставку куска текста (или любого другого объекта). Вы должны выделить текст и скопировать его, нажав Ctrl+C. Затем необходимо указать место для вставки и нажать Ctrl+V. Все, урок закончен 🙂
Ctrl (сокращение от англ. Control, произносится [ kən’trοl ], на клавиатурах, производившихся в СССР могла обозначаться как «УПР», «УС», «СУ») — клавиша на клавиатуре компьютера, обычно используемая как клавиша-модификатор. Изначально появилась на телетайпах и видеотерминалах для ввода управляющих символов (отсюда и название) — на многих терминалах эта клавиша просто сбрасывала в «0» бит №6 в коде передаваемой клавиши, что позволяло вводить символы из области 00-1F, недоступные при вводе напрямую. В персональных компьютерах эта клавиша утратила основное значение, превратившись в одну из клавиш-модификаторов, используемых для сочетаний клавиш. Также она может использоваться и как обычная клавиша, например в играх на неё может быть назначена функция стрельбы — в современных клавиатурах клавиша Ctrl посылает свой скан-код, как и другие клавиши; кроме того, скан-коды левой и правой клавиши Ctrl различаются, что позволяет использовать в некоторых системах, к примеру, сочетание Ctrl + ⇧ Shift для переключения языков так, чтобы нажатие левого Ctrl означало включение одного языка, а правого — другого.
На клавиатурах IBM PC-совместимых компьютеров клавиша Ctrl как правило располагается в нижних углах буквенно-цифровой группы клавиш, но изначально она находилась в левой его части, вместо клавиши ⇪ Caps Lock (иногда вместе с ней). При этом многие программы для Unix писались именно под Ctrl в среднем ряду, поэтому многие пользователи Unix-совместимых систем предпочитают менять местами эти клавиши [1] . Производятся клавиатуры, в которых клавиша Ctrl располагается на прежнем месте, например так сделано в ноутбуках проекта One Laptop per Child [2] , и клавиатурах HHKB ( англ. ) , а также клавиатуры, в которых эти клавиши можно поменять местами.
Ctrl+V — стандартное и часто используемое при работе на компьютере сочетание клавиш для вставки данных из буфера обмена Windows. Позволяет не набирать повторно один и тот же текст, а скопировать его из другого или этого же документа.
Для реализации действия пользователю требуется установить (обычно — нажатием левой кнопки мыши) указатель в то место, куда предстоит вставка, а затем использовать сочетание клавиш Ctrl+V, для чего нужно нажать и удерживать клавишу Ctrl на клавиатуре (крайняя слева в нижнем ряду), а затем, не отпуская ее, нажать клавишу V, после чего отпустить обе клавиши.
Это действие (наряду с копированием в буфер — по нажатию Ctrl+C) часто называют копипастой по словам Copy+Paste — копирование и вставка.
Использование сочетаний клавиш Ctrl+C (для команды «копировать»), Ctrl+V (для «вставить»), Ctrl+Z («отменить»), Ctrl+X («вырезать») было популяризовано компанией Apple в 1983—1984 г.г., а потом подхвачено компанией Microsoft.
Другие способы
Есть и другие способы скопировать данные в буфер — из контекстного меню, из главного меню, панели инструментов — но по сочетанию клавиш Ctrl+V это действие, пожалуй, выполняется наиболее быстро и удобно. Известно также сочетание клавиш Shift+Insert, которое в некоторых программах выполняет это же действие.
Источник
Магия Ctrl-C Ctrl-V, или как перестать сохранять картинки и начать жить
Одна из немногих стандартных утилит Windows, которой я пользуюсь практически каждый день — это snippingtool, или, попросту говоря, «Ножницы». Свою задачу она выполняет на ура (впрочем, многого от неё я и не требую), а из прочих полезностей можно отметить вставку выделенного региона напрямую в Skype, без необходимости сохранять изображение в файл — достаточно всего лишь нажать Ctrl-V в окне ввода сообщений. Приятно, что название файла в таком случае будет состоять из даты и времени вместо, например, хеша.
Несмотря на то, что в самом Snipping Tool имеется возможность обводить определённые части изображения, порой этого недостаточно:
- Во-первых, «Ножницы» не умеют обрабатывать комбинацию клавиш Ctrl-Z, т.е. сделать в них Undo не получится, в связи с чем одна-единственная ошибка в редактировании может заставить начать всё с начала
- Во-вторых, обводить изображение можно только при помощи Pen’а и Highlighter’а, что не очень удобно, когда надо, например, указать на прямоугольную область
Именно по этим причинам я зачастую обращаюсь к mspaint. А вот у него есть обратный недостаток — вставить изображение напрямую из буфера обмена в Skype уже не получится.
В чём же причина такого поведения? Можно ли его исправить? Давайте разберёмся.
Как протекал процесс, и что из этого вышло, читайте под катом.
Предлагаю начать со сравнения содержимого буфера обмена в случае копирования изображения из snippingtool и из mspaint. Для этого можно воспользоваться программой под названием InsideClipboard. Скачиваем, разархивируем и запускаем InsideClipboard, открываем «Ножницы» (Win-R -> snippingtool), выделяем какой-нибудь регион (в моём случае это небольшая часть чёрного фона на рабочем столе), нажимаем F5 в InsideClipboard и видим следующую картину:
Сохраняем это же изображение куда-нибудь на диск, открываем его в mspaint (Win-R -> mspaint), выделяем его полностью (Select -> Select all), копируем в буфер обмена при помощи Ctrl-C, снова обновляем состояние InsideClipboard’а и смотрим, что оказалось в clipboard’е на этот раз:
Помимо самого bitmap’а в данном случае мы можем наблюдать в буфере обмена какую-то дополнительную информацию. Может быть, Skype’у именно она и мешает при вставке изображения?
Т.к. на клиент Skype’а навешана самопальная защита, для данной задачи гораздо проще будет воспользоваться каким-нибудь перехватчиком WinAPI-функций, чтобы посмотреть, как Skype «заглядывает» в буфер обмена. Скачиваем и запускаем WinAPIOverride, указываем PID Skype’а в поле «Process ID» и нажимаем на кнопку «Start»:
Отлично, жмём на кнопку «Monitoring Files Library»
и начинаем ставить галочки рядом с функциями, связанными с работой с clipboard’ом. Полный их список можно найти, например, на MSDN:
AddClipboardFormatListener
ChangeClipboardChain
CloseClipboard
CountClipboardFormats
EmptyClipboard
EnumClipboardFormats
GetClipboardData
GetClipboardFormatName
GetClipboardOwner
GetClipboardSequenceNumber
GetClipboardViewer
GetOpenClipboardWindow
GetPriorityClipboardFormat
GetUpdatedClipboardFormats
IsClipboardFormatAvailable
OpenClipboard
RegisterClipboardFormat
RemoveClipboardFormatListener
SetClipboardData
SetClipboardViewer
Переходим на документацию к любой из них и обращаем внимание, что работа с буфером обмена осуществляется при помощи модуля User32. Ставим галочку рядом с ним и соответствующими функциями и нажимаем на кнопку «OK»:
Вставляем в окно ввода сообщений Skype’а изображение из snippingtool и смотрим на цепочку вызовов:
Теперь проделываем то же самое с mspaint:
Обратите внимание, что функция IsClipboardFormatAvailable, вызванная с аргументом 0x0000C013, возвращает разные результаты в двух рассмотренных нами случаях. Аргумент этот обозначает формат, наличие которого, собственно, и требуется проверить:
format [in]
Type: UINT
A standard or registered clipboard format. For a description of the standard clipboard formats, see Standard Clipboard Formats
Давайте взглянем на определения predefined-форматов в заголовочном файле WinUser.h:
Как видите, интересующего нас 0x0000C013 среди них, к сожалению, нет. Погуглив немного, я наткнулся на несколько источников (например, тут), которые сообщают, что данный формат связан с OLE:
The Windows clipboard is the mechanism that Microsoft
Windows operating systems use to allow data to be shared
between applications. It first appeared in Windows 3.1,
although its functionality has greatly increased since then.
Table 1 shows the standard formats used by the clipboard
(Petzold, 1999). However, Microsoft also provides the ability
for “private data formats”, formats that are application
specific (for example, fonts in a word processing program),
and that could be registered so that other applications could
transfer data in these formats (Petzold, 1999). Two private data
formats that are used extensively are object link embedding
(OLE) (0xC013) and dataobjects (0xC009)
Если загрузить mspaint в OllyDbg и поставить бряк на начало функции SetClipboardData, то при копировании изображения или его части в буфер обмена мы увидим по Call Stack’у, что нас действительно позвали из связанных с OLE функций:
Видимо, Skype действительно при встрече в буфере обмена данных, связанных с OLE, перестаёт думать, что в нём находится полноценное изображение. Не могу сказать, баг это или фича, но меня такое поведение явно не устраивает.
Кстати, Вы обратили внимание, что InsideClipboard не показал данных с форматом 0x0000C013? Если же скачать какой-нибудь другой viewer clipboard’а (например, Free Clipboard Viewer), то мы увидим эти самые «Ole Private Data»:
Но подождите! Изображение ведь действительно есть в буфере обмена, раз мы можем скопировать его, например, в тот же mspaint. Давайте попробуем получить его, очистить текущее содержимое clipboard’а и «составить» его заново, чтобы в нём не осталось ни малейшего упоминания об OLE.
Пишем следующий код на C#
, копируем в буфер обмена изображение из mspaint, смотрим на вывод InsideClipboard’а
, запускаем наше приложение и смотрим на содержимое буфера обмена ещё раз:
Пробуем вставить изображение в Skype, и…
Разумеется, запускать вручную каждый раз при копировании отдельный исполняемый файл — не самая лучшая идея, так что предлагаю вооружиться OllyDbg и начать делать это автоматически. Да, можно позвать соответствующий код напрямую из модуля OllyDbg, но зачем, если у нас уже есть готовая программа?
Копируем mspaint.exe из «%WINDIR%\System32» в любую другую директорию, убираем использование технологии ASLR при помощи PE Tools (этот процесс уже был описан несколько раз в предыдущих статьях — например, тут), запускаем Paint в OllyDbg и видим следующее собщение:
Что ж, ранее мы уже имели дело с изменением поведения приложения в случае изменения его окружения, так что давайте создадим директорию под названием «en-US» (в Вашем случае оно, разумеется, может отличаться), и положим туда файл mspaint.exe.mui.
Да, теперь Paint запускается корректно:
Переходим в модуль User32 (right-click по окну CPU -> View -> Module ‘USER32’), нажимаем Ctrl-N и ищем в списке имён SetClipboardData:
Ставим бряк на начало данной функции, копируем что-нибудь в буфер обмена из окна mspaint’а и смотрим на call stack:
Прыгаем на ближайший «пользовательский» код, который в данном случае находится по адресу 0x104FDE3, и смотрим на «окружение»:
Отлично, по адресу 0x0104FDE8 можно будет расположить прыжок на наш code cave. Давайте продумаем, как он будет выглядеть:
Теперь необходимо узнать адрес в IAT, по которому находится адрес функции ShellExecuteA. Загружаем mspaint.exe в PE Tools, нажимаем на кнопку «Directories», раскрываем пункт «Import Directory» и щёлкаем по SHELL32.dll (именно там, согласно документации, находится реализация данной функции):
К сожалению, среди импортируемых из SHELL32.dll функций нет ни имени ShellExecute, ни CreateProcess, ни system (впрочем, имеется импорт функции ShellExecuteExW, но в нашем случае она несколько избыточна). Может быть, она импортируется по ординалу?
Давайте узнаем, какой ординал ей соответствует. Для решения этой задачи я воспользовался утилитой dumpbin, доступной из VS Command Prompt:
Как видите, импортироваться по ординалу она также не может.
Что ж, тогда у нас имеются следующие варианты:
- Переписать код с C# на WinAPI и вызвать необходимые для работы с clipboard’ом WinAPI-функции напрямую из модуля mspaint
- Получить адрес функции ShellExecuteA при помощи связки функций LoadLibrary и GetProcAddress, которые есть в IAT
- Добавить функцию ShellExecuteA в IAT самостоятельно
Первое решение уткнётся в примерно ту же проблему, с которой мы имеем дело сейчас — ни одна из WinAPI-функций, необходимых для работы с clipboard’ом, на данный момент напрямую не импортируется в исследуемое приложение. Взаимодействие с буфером обмена осуществляется через OLE, что, на мой взгляд, является не самым удобным вариантом для патчинга.
Второе решение будет работать, однако, по моему мнению, выглядит не очень элегантным.
А вот третье решение выглядит довольно заманчиво.
Для добавления новой функции в IAT я решил воспользоваться программой под названием CFF Explorer, входящей в состав Explorer Suite. Открываем в ней mspaint.exe, заходим во вкладку «Import Adder», нажимаем на кнопку «Add», указываем путь до файла shell32.dll («%WINDIR%\System32\shell32.dll»), выбираем из отобразившегося списка функцию ShellExecuteA и нажимаем последовательно на кнопки «Import By Name» и «Rebuild Import Table», после чего сохраняем изменения:
В результате наших действий во вкладке «Import Directory» той же тулзы должна появиться следующая запись:
Странно, но выполнение данных шагов привело к разным результатам на разных версиях Windows. В результате проделывания данных операций на Windows 7 мы получаем бинарник, который содержит вместо адреса функции ShellExecuteA какую-то ерунду, но если выполнить все эти действия на Windows XP, то всё работает так, как и ожидается. На момент написания данной статьи я находился в процессе общения с пользователем -=AkaBOSS=- с exelab, чтобы выяснить причину данного поведения.
Взяв в руки бинарник, полученный в результате работы программы CFF Explorer на Windows XP, я открыл его на моей основной системе в OllyDbg и посмотрел, что находится по адресу 0x01617198. Почему именно этот адрес? Потому, что модуль mspaint загрузился по адресу 0x01000000 (впрочем, он и не мог загрузиться по какой-либо другой базе, ведь мы отключили ASLR ранее)
, а CFF Explorer сообщил нам, что нужно смотреть на смещение 0x00617198. 0x01000000 + 0x00617198 = 0x01617198.
Как видите, тут действительно находится адрес функции ShellExecuteA.
Ищем место для code cave’а и пишем следующий код (разумеется, адреса могут отличаться):
Теперь добавляем прыжок на наш code cave после вызова процедуры, отвечающей за добавление данных в clipboard:
Сохраняем наши изменения в исполняемый файл и наслаждаемся прямой вставкой содержимого буфера обмена из mspaint в Skype.
Послесловие
Пришла пора прощаться с файлами «2.PNG» и «3.PNG» от создателей «1.PNG», которые всего лишь хотели отправить изображения своим собеседникам в Skype. Не ленитесь придумывать рандомные имена своим файлам? Тогда не ленитесь и OllyDbg открыть.
Спасибо за внимание, и снова надеюсь, что статья оказалась кому-нибудь полезной.
Источник