Как отключить режим ограниченной функциональности в Word
В новых версиях приложений из пакета Microsoft Office добавляются улучшенные функции и ранее недоступные инструменты для работы. Вместе с тем появляются и некоторые трудности, с которыми пользователи сталкиваются в неподходящий момент. Одной из них стала ограниченная функциональность программы. Данный режим активируется при попытке открытия файлов из ранних версий и встречается во всех приложениях Microsoft, включая текстовый редактор.
Программа имеет совместимость со старыми форматами, но для полноценной функциональности документ должен быть создан с тем же набором функций. Если файлы сохраняются устаревшим Вордом, то в новой включается режим ограничений. Он дает базовый набор возможностей редактирования и позволяет избежать сбоев. Без него возникать проблемы могли бы со всеми функциями, в том числе с изменением шрифтов. Совместимость позволяет также оптимизировать структуру текста, не навредив содержанию. Однако работает все в этом режиме ограниченно. Поэтому невозможно использовать документ полноценно. Для нормальной работы придется убрать ограничения, адаптировав материал под новый формат. Способ отключения режима зависит от года выпуска программы.
Содержание
- Как отключить режим ограниченной функциональности во всех версиях word:
- MS Word 2007
- MS Word 2010
- MS Word 2013
- MS Word 2016
- MS Word 2019
MS Word 2007
Уведомление об урезанном режиме работы в Ворде 2007 года появляется уже не так часто. Это происходит при открытии формата DOC. Именно в нем сохранялись текстовые материалы офисным пакетом Microsoft до выпуска Office 2007. Чтобы убрать сообщение, нужно просто пересохранить текст. При этом формат заменится расширением DOCX.
Как снять ограничения для Word 2007:
- Откройте устаревший текстовый документ, кликните по кнопке Microsoft Office в левом верхнем углу.
- Выберете «Сохранить как» и переключите расширение файла на актуальное, кликнув по «Документ Word».
- Подтвердите изменение расширения и сохранение документа на компьютере, закройте программу и согласитесь на изменения.
На компьютере будут оба текста. Старый останется без изменений, новый сохранится в формате DOCX. В последнем скорректируются стили, а формулы заменятся картинками. Структура останется одинаковой для любой версии редактора. Для более свежих Microsoft Word уже не будет достаточно пересохранить текст – потребуется выполнить преобразование из нового приложения.
Также можно воспользоваться альтернативным способом убрать ограничения. Перед этим потребуется включить отображение расширений в панели управления. Чтобы изменить формат, останется кликнуть правой кнопкой мыши по документу, заменить .doc на .docx и подтвердить корректировку согласием.
Зачастую в Ворде 2007 встречается проблема, связанная с включением ограничений для всех текстов при каждом сохранении. Причины появления сбоя кроются внутри параметров программы. В таком случае придется конвертировать файлы постоянно. Решить проблему можно путем выключения параметров совместимости. Это поможет отказаться от адаптации к устаревшим редакторам. Достаточно открыть настройки, перейти к «Параметрам сохранения» и выбрать «Документ Word». После этого возможно появление ошибок совместимости, если открыть текст Вордом 97 или ниже. Для подтверждения нужно закрыть настройки сохранения и подтвердить внесенные изменения.
MS Word 2010
Сообщение о сокращении функциональности отображается также при работе с версией приложения от 2010 года. Режим включается, если используется документ, созданный в Ворд 2007 и ниже. Чтобы избавиться от урезания до параметров прежней версии редактора и не использовать ограниченно функциональность, нужно выполнить преобразование материала до актуальной программы.
Как убрать режим в Word 2010:
- Откройте нужный материал в режиме ограниченной функциональности через имеющийся Office 2010.
- Нажмите по кнопке «Файл», наведите курсор на пункт «Сведения» и выберите «Преобразовать».
- На экране с предупреждением нажмите «Ок», чтобы согласиться с преобразованием и снять режим урезанного функционала.
Ворд 2010 заменит имеющийся документ на обновленный, преобразовав файл. Обновится его структура для полноценной работы с актуальным Office, содержание останется прежним. Сообщение о том, что включен режим совместимости, будет появляться на более новых версиях софта. Если файл открыт редактором 2016 года, потребуется повторить процедуру. Иначе функционал вновь будет урезан. Для этого нужно пересохранить файл с преобразованием.
MS Word 2013
Если появляется надпись с уведомлением о функциональных ограничениях в редакторе от 2013 года, то для перехода к обычному режиму и открытия современных функций потребуется выполнить преобразование. Процедура схожа со схемой работы с Ворд 2016.
Как отключить ограничения для Word 2013:
- Откройте необходимый текст старого формата с помощью имеющегося редактора Ворд 2013 года.
- Кликните по кнопке «Файл», наведите курсор на раздел «Сведения» и нажмите «Преобразовать».
- Подтвердите преобразование документа, закройте приложение и согласитесь на сохранение.
Аналогичным образом отключаем режим с ограничением функционала для других текстов, созданных устаревшими версиями редактора. Функция преобразования скорректирует структуру под новые программы и сохранит содержимое.
MS Word 2016
Отключить режим ограничений в Ворд 2016 можно путем преобразования формата текста от старой версии программы. После этого документ открывается без урезания функционала, а проблемы совместимости устраняются.
Как выключить режим в Word 2016:
- Откройте через текстовый редактор Office 2016 нужный материал, при работе с которым запускается ограниченная функциональность.
- Кликните по кнопке «Файл», откройте раздел «Сведения» и нажмите кнопку «Режим совместимости» в настройке ограниченной функциональности.
- После этого появится предупреждение об обновлении формата. Останется подтвердить преобразование, закрыть программу и согласиться на сохранение.
На компьютере появится обновленный файл. Если он был создан в формате DOC, то получит другое расширение, DOCX. Данный формат отличается меньшим весом и оптимизирован для работы в различных версиях редактора последних выпусков без режимов совместимости. Содержимое файла останется прежним, но часть стилей может исчезнуть, а некоторые элементы примут иной вид. Открываться текст будет с полным набором функций, ограничение функциональности исчезнет. Если исходный материал также нужен для дальнейшего использования, то перед процедурой следует сделать его копию.
Вам может быть интересно: Как отключить подписку Старт (START) — подробная инструкция
MS Word 2019
В последнем редакторе Word урезание функциональности блокирует ряд полезных функций. Некоторые ограничения могут серьезно усложнить работу. Чтобы отключить данный режим, нужно воспользоваться стандартной инструкцией по преобразованию. Схожесть интерфейса в версиях Ворда 2019 и 2016 делает процедуру идентичной для обеих программ Microsoft.
Как вернуть функции редактора Microsoft от 2019 года:
- Если Word открыт, остается выбрать необходимый материал, сохраненный старым текстовым редактором.
- Откройте меню кликом по кнопке «Файл», перейдите к «Сведениям» и нажмите «Режим совместимости».
- Согласитесь с вносимыми изменениями, закройте программу и сохраните преобразованный материал.
После сохранения документа останется только один файл. Внутри будут внесены корректировки, а сообщение об ограничениях исчезнет. Открывать его можно будет любыми версиями Ворда, но старые могут выдавать ошибки и некорректно отображать информацию.
Как включить редактирование в Word (с помощью 6 методов) • BUOM
8 апреля 2022 г.
Многие профессионалы используют систему обработки текстов для создания письменных документов и передачи важной информации. При совместном использовании или получении документа вы можете захотеть включить редактирование, чтобы вы или получатель могли изменить его при необходимости. Понимание того, как включить функцию редактирования в Word, может помочь вам вносить изменения в полученный документ, открытый в защищенном режиме или в режиме только для чтения. В этой статье мы объясним, что такое функция редактирования в Word, объясним ее различные варианты использования и предоставим подробные списки шагов для включения и отключения редактирования в Word.
Что такое редактирование в Word?
Редактирование в Word — это функция, позволяющая вносить изменения в документ. Это поможет вам настроить файл различными способами. Например, вы можете добавить в документ абзацы, изменить его формулировку, исправить грамматические структуры и удалить определенные элементы. Пользователи часто отключают эту функцию при отправке документов, чтобы они оставались в исходном формате. Когда вы получаете документ, часто бывает полезно понять, как разрешить редактирование по нескольким причинам.
Использование редактирования в Word
Существует несколько вариантов использования редактирования в Word. Вы можете получить документ с орфографическими или грамматическими ошибками, требующими исправления. Некоторые документы могут лучше передать свое содержание, если они организованы в другом формате. Вы можете использовать редактирование в Word, если первоначальный пользователь документа забыл изменить его параметры ограниченного редактирования или защищенного просмотра. Изучение того, как включить функцию редактирования в Word, полезно в любых обстоятельствах, когда вы хотите изменить структуру или содержимое документа.
Как включить редактирование в Word
Просмотрите эти шесть методов и шаги для каждого, чтобы помочь вам включить функцию редактирования в Word:
1. Как включить редактирование в защищенном режиме
Вы можете получить документ, который отправитель установил для просмотра только в защищенном режиме. В таких случаях полезно знать, как включить редактирование, чтобы вы могли вносить изменения в документы в защищенном режиме. Выполните следующие действия, чтобы включить редактирование в защищенном режиме:
Выберите «Файл» в верхнем баннере.
Нажмите «Информация».
Выберите «Защитить документ».
Выберите «Включить редактирование».
2. Как выйти из защищенного режима
Другой вариант включения редактирования в документе Word — полный выход из защищенного режима. Это превращает файл в доверенный документ и позволяет вам изменять, сохранять или распечатывать его. Вот шаги для выхода из защищенного просмотра:
Найдите желтую панель сообщений в документе.
Выберите «Включить редактирование».
Если панель сообщений красная, вы можете выбрать «Файл».
Выберите «Все равно изменить».
3. Как отключить функцию защищенного просмотра
Microsoft Word автоматически включает функцию защищенного просмотра. Это помогает защитить вас от открытия поврежденных или вредоносных файлов, таких как вложения в спам-сообщениях. Вы можете отключить эту функцию, чтобы разрешить редактирование всех документов, которые вы открываете, независимо от их источника. Используйте эти шаги, чтобы помочь вам отключить функцию защищенного просмотра в Word:
Перейдите на вкладку «Файл» в верхнем баннере.
Выберите «Параметры».
Выберите «Центр управления безопасностью» в меню слева.
Нажмите «Настройки центра управления безопасностью».
Выберите «Защищенный просмотр».
Снимите три параметра в разделе «Защищенный просмотр».
Нажмите «ОК».
4. Как отключить режим только для чтения
Возможно, вы не сможете редактировать документ, потому что первоначальный автор установил для него режим только для чтения. В этой ситуации необходимо отключить режим только для чтения, что можно сделать, выполнив следующие действия:
Щелкните правой кнопкой мыши документ Word, который вы хотите отредактировать.
В появившемся меню выберите пункт «Свойства».
Перейдите на вкладку «Общие».
Снимите флажок «Только для чтения».
Перейдите на вкладку «Безопасность» в том же меню.
Найдите раздел «Имена групп или пользователей».
Установите флажок для каждого разрешения, включая «Полный доступ», «Изменение», «Чтение и выполнение», «Чтение» и «Запись».
Нажмите «Применить».
Выберите «ОК», чтобы сохранить эти изменения.
5. Как изменить настройки редактирования
Документ может потребовать, чтобы вы изменили его настройки редактирования, прежде чем вносить в него какие-либо изменения. Это часто происходит из-за того, что его первоначальный автор установил в настройках ограничение на редактирование. Чтобы изменить параметры редактирования документа, выполните следующие действия:
Откройте документ.
Выберите вкладку «Обзор».
Нажмите «Ограничить редактирование».
Снимите все флажки.
Закройте файл.
Снова откройте документ, чтобы отредактировать его.
6. Как удалить владельца файла
У вас могут возникнуть трудности при редактировании документа в общей сети, когда файл открыт другим пользователем. Это означает, что ваш файл будет открываться только в режиме только для чтения, если вы не удалите владельца файла. Выполните следующие действия, чтобы удалить владельца файла и разрешить редактирование в документе:
Сохраните документ Word, который вы хотите отредактировать.
Закройте все программы на вашем компьютере.
Нажмите клавиши «Crtl», «Shift» и «Esc», чтобы открыть диспетчер задач.
Выберите вкладку «Процессы».
Щелкните правой кнопкой мыши процесс «exe».
Выберите опцию «Завершить процесс» в появившемся меню.
Выберите «ОК», если откроется диалоговое окно с просьбой закрыть программу, потому что она не отвечает.
Закройте диспетчер задач.
Найдите папку, содержащую документ Word, который вы хотите отредактировать.
Найдите и удалите файл с именем «~$cument.doc».
Откройте документ Word еще раз.
Нажмите «Нет», если появится диалоговое окно с просьбой загрузить изменения, внесенные в шаблон.
Как отключить редактирование в Word
Вот список из четырех методов и шагов для каждого из них, которые помогут вам отключить функцию редактирования в Word:
1. Как ограничить редактирование в вашем документе
Этот метод позволяет запретить кому-либо вносить изменения в ваш документ. Вы также можете использовать эту опцию, чтобы установить пароль для вашего документа для повышения безопасности. Чтобы ограничить редактирование документа, выполните следующие действия:
Нажмите на вкладку «Обзор» в верхнем баннере.
Выберите «Ограничить редактирование».
Установите флажок в разделе «Ограничения редактирования».
Выберите «Без изменений (только чтение)».
Чтобы установить пароль, нажмите «Да, включить защиту».
Введите выбранный вами пароль.
Повторно введите выбранный пароль, чтобы подтвердить его.
Выберите «ОК».
Вы можете использовать параметр «Исключения», чтобы разрешить определенным людям доступ к редактированию вашего документа.
2. Как ограничить изменения форматирования в вашем документе
Вы можете разрешить пользователю редактировать ваш документ, но при этом запретить ему вносить какие-либо изменения в его формат. Следуйте этому списку шагов, чтобы ограничить изменения форматирования в документе Word:
Нажмите на вкладку «Обзор» в верхнем баннере.
Выберите «Ограничить редактирование».
Установите флажок в разделе «Ограничения форматирования».
Во всплывающем окне установите флажок, чтобы ограничить форматирование.
Снимите все стили, установленные для ограничения.
Проверьте желаемые варианты форматирования.
Нажмите «ОК».
3. Как ограничить внесение изменений в определенные части документа
Иногда может потребоваться ограничить доступ пользователя к редактированию определенных частей документа. Это позволяет получателю вносить изменения только в утвержденные вами части документа. Вы можете использовать эти шаги, чтобы ограничить изменения в определенных частях документа:
Выберите часть документа, которую вы хотите ограничить.
Нажмите на вкладку «Обзор» в верхнем баннере.
Выберите «Блокировать авторов».
4. Как пометить документ как окончательный
Пометка документа Word как окончательного — еще один способ ограничить доступ пользователя к редактированию. Этот метод устанавливает для вашего документа статус только для чтения, не позволяя никому каким-либо образом его изменить. Имейте в виду, что любой пользователь может снять статус «Пометить как окончательный», поэтому часто бывает выгодно использовать этот метод с другим типом защиты. Выполните следующие действия, чтобы пометить документ как окончательный:
Выберите вкладку «Информация» на вертикальном баннере справа.
Перейдите в меню «Защитить документ».
Нажмите «Отметить как окончательный».
Обратите внимание, что ни одна из компаний, упомянутых в этой статье, не связана с компанией Indeed.
Исправлено: не удается отредактировать документ Word?
Перейти к содержимому
Yodot Software File Repair
Microsoft Word является наиболее широко используемым текстовым процессором в мире. Это самое простое, но волшебное приложение, предлагающее множество функций. Люди используют эту программу Word более 3 десятилетий, и даже сейчас она остается лучшей в гонке.
Однако общая проблема, связанная с этим известным инструментом обработки текста, оставила нескольких пользователей в тяжелом положении.
» Я не могу редактировать документ Word! » « Почему я не могу редактировать свой документ Word?» — это наиболее часто задаваемый вопрос пользователями MS Word в различных обсуждениях на онлайн-форумах.
Итак, если вы тоже столкнулись с той же проблемой, вот несколько простых приемов, которые помогут решить проблему, когда вы не можете редактировать документ Word.
Если файл Word, который вы не можете редактировать, сохранен на каком-либо съемном носителе, скопируйте документ на жесткий диск вашего компьютера и попробуйте отредактировать.
Убедитесь, что программа Office успешно активирована на вашем компьютере. И, если вы используете пробную версию, убедитесь, что она не просрочена.
Шаг 2: Включить файл Word- Щелкните правой кнопкой мыши документ Word, который вы не можете редактировать
- Щелкните Свойства и снимите флажок Только для чтения
- Переключитесь на вкладку Безопасность и проверьте, что права на использование файла указаны в Группа или имена пользователей
- Также убедитесь, что каждый элемент управления помечен как Разрешить ниже Разрешения
- Применить сделанных вами изменений и нажать OK
Вы даже можете столкнуться с тем, что Word не может завершить сохранение из-за ошибки прав доступа к файлу, если к документу Word не предоставлен полный доступ.
Шаг 3: Снять защиту документа- Откройте документ Word, который вы не можете редактировать, и перейдите в меню Файл
- Нажмите Опции , выберите Настройка ленты и Разработчик
- Select Защита / Защита документов
- Проверить обоих Блокировать авторов и Ограничить редактирование
- Отключить Ограничить редактирование и удалить заблокированных авторов
- При появлении запроса введите пароль и нажмите OK
В Word 2016 вы можете найти параметры Ограничить редактирование и Блокировать авторов до Обзор (верхняя панель)-> Защита вкладка.
Примечание: Если ваш файл Word не отвечает во время работы или не открывается в программе MS Word, обратитесь за помощью в Yodot DOC Repair или перейдите по ссылке, чтобы решить проблему.
Программа Word дает пользователю возможность открывать документы Word, которые сохранены в небезопасном месте или получены из Интернета/в виде вложений Outlook в режиме только для чтения. Это необходимо для защиты вашей системы от небезопасных сущностей или вредоносных скриптов.
Итак, если вы не хотите, чтобы документ Word, доставленный из Outlook/Интернета, открывался в режиме только для чтения, выполните следующие действия.
В Word 2016/2013/2010:
Перейти к Файл -> Параметры -> Центр управления безопасностью -> Параметры центра управления безопасностью -> все -> Защищенный просмотр -> Защищенный просмотр -> Защищенный вид OK
В Word 2007:
Выберите Проверить на верхней панели -> Защитный документ -> Защита -> Ограничение форматирования и редактирования -> Стоп -защита
В Word 2003:
Инструменты -> . Не используется другим пользователем
Если ваш файл Word сохранен на сетевом диске (общая сеть) и в то же время над ним работает другой пользователь, вы не можете редактировать этот документ. Он откроется в режиме «Только для чтения».
Если это так, вы можете попробовать следующие шаги.
- Сохраняйте всю свою работу и открывайте файлы
- Закройте все работающие программы и нажмите CTRL , ALT и Удалить вместе клавиш
- В диспетчере задач выберите . exe и нажмите Завершить процесс на вкладке Процессы .
- Хит Да ; если он показывает, что программа не отвечает, нажмите кнопку End Now
- Выйдите Диспетчер задач , перейдите в папку, в которой сохранен ваш файл Word (файл только для чтения), и удалите файл с именем вроде ~$cument.doc
- Откройте программу Word, нажмите Нет и откройте файл Word, который вы не смогли отредактировать
Я надеюсь, что приведенные выше решения помогут решить вашу проблему «не могу редактировать документ Word». Если вы нашли какой-либо другой способ решить эту проблему, не стесняйтесь оставлять свои решения в поле для комментариев ниже.
Отключение режима быстрого редактирования | Музей OS/2
На прошлой неделе я решил, наконец, решить небольшую проблему, которая донимала меня с тех пор, как я перевел свою основную машину разработки с Windows 7 на Windows 10 более года назад. Как и в случае с этими вещами, необходимо достичь определенного болевого порога, прежде чем углубляться в неизвестность, потому что никогда не знаешь, к скольким кроличьим норам это приведет.
Проблема: время от времени я использую инструменты Open Watcom, часто для кросс-разработки с DOS или OS/2. Когда я это делаю, я склонен использовать консольные инструменты, в том числе 9Редактор 0227 vi и отладчик wd
отчасти потому, что они работают одинаково на разных платформах. Оба инструмента могут работать с мышью, и особенно отладчик работает намного продуктивнее при использовании с мышью. В Windows 7 это работает нормально. Не так много в Windows 10, потому что вместо отправки событий мыши в приложение Windows пытается выбрать текст в окне консоли. Бесполезно:
Любой, кто боролся с этой проблемой, вероятно, знает ответ: Режим быстрого редактирования. Когда Quick Edit включен, мышь выделяет текст в окне консоли, Enter копирует, щелкает правой кнопкой мыши и вставляет. Отлично подходит для оболочки, тем более в пользовательском интерфейсе в текстовом режиме, управляемом мышью. В Windows 10 режим быстрого редактирования включен по умолчанию, и это меня огорчило.
Итак, режим быстрого редактирования — это какая-то новинка Windows 10? Отнюдь не! Quick Edit был с нами для довольно какое-то время, единственное изменение в Windows 10 заключалось в том, что оно включено по умолчанию. Другими словами, у инструментов Open Watcom всегда была одна и та же проблема, но никто особо этого не замечал.
Программное отключение режима быстрого редактирования
Отключение режима быстрого редактирования немного неочевидно. Это можно сделать с помощью достаточно очевидного API SetConsoleMode , но, как указано в документах Microsoft, это достигается без передачи флага ENABLE_QUICK_EDIT_MODE 9.0235 и передают ENABLE_EXTENDED_FLAGS.
Если это звучит подозрительно, так и должно быть — и становится только хуже.
Режим быстрого редактирования присутствовал в Windows NT с момента выхода исходной версии 3.1 (1993 г.):
Режим быстрого редактирования можно включить в Windows NT 3.1 годы спустя в SDK для Windows Vista (2007 г.). Однако, начиная с Windows NT 3.51, режим ENABLE_QUICK_EDIT_MODE поддерживался, но не документировался и был скрыт.Это настолько запутанно, что может понадобиться краткая временная шкала:
- 1993 : выпущена Windows NT 3.1, поддерживает режим быстрого редактирования. Приложения не могут управлять режимом быстрого редактирования через GetConsoleMode / SetConsoleMode .
- 1995 : Windows NT 3.51 добавляет флаг ENABLE_QUICK_EDIT_MODE, позволяющий приложениям отключать его с помощью SetConsoleMode . Однако вместе с режимом вставки функциональность быстрого редактирования не документирована и частично скрыта с помощью флага, который в конечном итоге называется ENABLE_EXTENDED_FLAGS.
- 2007 : Windows Vista SDK определяет ENABLE_QUICK_EDIT_MODE, ENABLE_INSERT_MODE и ENABLE_EXTENDED_FLAGS; функциональность задокументирована, но ужасно вводящим в заблуждение способом.
- 2015 : Windows 10 по умолчанию включает режим быстрого редактирования, заставляя невинные консольные приложения справляться с осложнениями.
Итак, как это работает в деталях? Пройдемся по изменениям.
Прежде всего, обратите внимание, что при смене режима консоли SetConsoleMode завершится с ошибкой ERROR_INVALID_PARAMETER, если ему будут переданы какие-либо флаги, которые он не понимает. Это усложняет написание Win32-приложений, предназначенных для работы в версиях NT (здесь мы проигнорируем Windows 9x, поскольку она имеет свой собственный набор сложностей в отделе консоли Win32).
Во времена Windows NT 3.1 и 3.5 все было просто. Приложения не могли ни запрашивать, ни устанавливать состояние режима быстрого редактирования. Начиная с NT 3.51 все стало гораздо интереснее.
Флаги ENABLE_QUICK_EDIT_MODE и ENABLE_INSERT_MODE присутствовали, но считались частными и охранялись ENABLE_EXTENDED_FLAGS. Семантика была настолько странной, что люди, пишущие документацию Microsoft, видимо, тоже ее не понимали.
Возможно, было бы логично, если бы ENABLE_EXTENDED_FLAGS требовалось для установки ENABLE_QUICK_EDIT_MODE и/или ENABLE_INSERT_MODE через SetConsoleMode , а GetConsoleMode возвращал бы ENABLE_EXTENDED_FLAGS, если установлено ENABLE_QUICK_EDIT_MODE или ENABLE_INSERT.
Но это работает совсем не так. SetConsoleMode означает, что , а не , требует ENABLE_EXTENDED_FLAGS для установки ENABLE_QUICK_EDIT_MODE или ENABLE_INSERT_MODE, но требует, чтобы требовал ENABLE_EXTENDED_FLAGS для сброса обоих других флагов.
GetConsoleMode еще более странный. Он может возвращать ENABLE_EXTENDED_FLAGS, когда не установлены ни ENABLE_QUICK_EDIT_MODE, ни ENABLE_INSERT_MODE, но он также может возвращать ни один из трех флагов, даже если ENABLE_QUICK_EDIT_MODE и/или ENABLE_INSERT_MODE фактически установлены.
В Windows Vista (NT 6.0) SDK Microsoft определила ENABLE_QUICK_EDIT_MODE, ENABLE_INSERT_MODE и ENABLE_EXTENDED_FLAGS в файле wincon.h. «Новые» флаги также были задокументированы, но документация вводит в заблуждение. В нем утверждается, что ENABLE_EXTENDED_FLAGS должен быть установлен при установке либо ENABLE_QUICK_EDIT_MODE, либо ENABLE_INSERT_MODE (неправильно), и не упоминается, что попытка установить эти флаги в старых версиях NT или Windows 9x приведет к сбою SetConsoleMode . Вполне возможно, что люди, пишущие документацию, не понимали, насколько сложным является API.
Кроме того, Vista SDK также определил флаг ENABLE_AUTO_POSITION, но не документировал его вообще . Тестирование показывает, что ENABLE_AUTO_POSITION ведет себя как ENABLE_QUICK_MODE и ENABLE_INSERT_MODE в том смысле, что он привязан к ENABLE_EXTENDED_FLAG.
Для завершения следует упомянуть, что Windows 10 добавила и даже задокументировала новый флаг ENABLE_VIRTUAL_TERMINAL_INPUT. Чтобы завершить путаницу, этот новый флаг , а не зависит от ENABLE_EXTENDED_FLAG.
Как черт возьми…
Описанное выше поведение, вероятно, взято прямо из книги How Not To Design an API . Как Microsoft добилась этого?
Бит ENABLE_EXTENDED_FLAGS фактически хранится отдельно в состоянии консоли. Чтобы продемонстрировать, какой хаос это вызывает, давайте рассмотрим следующую последовательность событий:
- Вызов SetConsoleMode с ENABLE_QUICK_EDIT_MODE. Это включает режим быстрого редактирования и внутренне устанавливает ENABLE_EXTENDED_FLAGS независимо от того, указал ли вызывающий абонент ENABLE_EXTENDED_FLAGS.
- Вызов GetConsoleMode . Он вернет обе установленные флаги ENABLE_EXTENDED_FLAGS и ENABLE_QUICK_EDIT_MODE.
- Вызов SetConsoleMode без установленных флагов ENABLE_EXTENDED_FLAGS, ENABLE_QUICK_EDIT_MODE или ENABLE_INSERT_MODE. Это может быть любое приложение, написанное с использованием SetConsoleMode с флагами, публично задокументированными до 2007 года. Это не отключит ENABLE_QUICK_EDIT_MODE, но очистит ENABLE_EXTENDED_FLAGS в состоянии консоли.
- Вызов GetConsoleMode . Он не вернет ни ENABLE_EXTENDED_FLAGS, ни ENABLE_QUICK_EDIT_MODE, хотя на самом деле режим быстрого редактирования все еще включен.
- Вызов SetConsoleMode с ENABLE_INSERT_MODE, но без ENABLE_EXTENDED_FLAGS или ENABLE_QUICK_EDIT_MODE. Теперь режим вставки будет включен, а режим быстрого редактирования отключен.
Зачем Microsoft это делать? Скорее всего была какая-то причина. Скорее всего, некоторые существующие приложения не восстанавливали исходное состояние консоли при выходе и отключали режим быстрого редактирования и режим вставки при запуске. Это может объяснить, почему ENABLE_EXTENDED_FLAGS требовалось для отключения режима быстрого редактирования и режима вставки.
Но это не объясняет, почему сам ENABLE_EXTENDED_FLAGS можно отключить. Особенно, когда, например. в NT 3.51 состояние консоли по умолчанию: ENABLE_QUICK_EDIT_MODE выключено, ENABLE_INSERT_MODE выключено, но ENABLE_EXTENDED_FLAGS включено!
Безопасное использование GetConsoleMode и SetConsoleMode
Учитывая вышеизложенное, должно быть очевидно, что использование GetConsoleMode и SetConsoleMode на 100% безопасно невозможно. Причина этого проста: приложение не может быть уверено, что оно запросило истинное состояние консоли при запуске, и, следовательно, не может обязательно восстановить состояние при завершении работы.
К счастью, в большинстве случаев ENABLE_EXTENDED_FLAGS будет установлен в NT 3.51 и более поздних версиях. Когда GetConsoleMode видит, что этот флаг установлен, можно быть уверенным, что биты ENABLE_QUICK_EDIT_MODE и ENABLE_INSERT_MODE также верны. Однако если ENABLE_EXTENDED_FLAGS сброшен, статус ENABLE_QUICK_EDIT_MODE и ENABLE_INSERT_MODE не определен.
Пока приложение никогда не устанавливает какие-либо из ENABLE_EXTENDED_FLAGS, ENABLE_QUICK_EDIT_MODE и ENABLE_INSERT_MODE, все будет хорошо — и это может быть вариант использования, который Microsoft пыталась охватить. Но как только любой из этих битов установлен, состояние будет изменено и не может быть безопасно восстановлено.
В общем, приложения должны стремиться сохранять бит ENABLE_EXTENDED_FLAGS всякий раз, когда он установлен, потому что это единственный способ убедиться, что GetConsoleMode может полностью прочитать состояние консоли.
Этот бардак был напрямую вызван тем, что Microsoft сначала скрыла недокументированный функционал (зачем?), а затем задокументировала его (потому что он слишком полезен и нужен!). Излишне говорить, что люди задавались этим вопросом раньше, хотя, похоже, никто не отслеживал, как функциональность развивалась с течением времени.
Подождите, в Windows 10 есть еще кое-что!
Windows 10 теперь усложняет работу консольных приложений, перехватывая комбинацию клавиш Ctrl+V по умолчанию.
Подобно беспорядку, вызванному использованием косой черты Microsoft, Ctrl+V был заимствован из другого места, что привело к конфликтам в будущем. Как мы все знаем, сочетания клавиш Ctrl+C и Ctrl+V были украдены с Mac, за исключением того, что в оригинале это были Command+C и Command+V, а современные Mac имеют отдельную клавишу Ctrl, поэтому конфликтов нет. (Справедливости ради следует отметить, что на компьютерах Xerox PARC эти сочетания клавиш изначально могли быть Ctrl+C и Ctrl+V, но, скорее всего, Microsoft взяла их не оттуда.)
На ПК не было клавиши Command, и Microsoft использовала клавишу Control в Windows. Проблема в том, что Ctrl+C — это очень давняя комбинация клавиш, используемая с терминалами, восходящая к 1960-м годам, и на самом деле это то, что DOS поддерживала с тех пор, как Windows и NT также поддерживали с самого начала.
Пользователи Windows обучены использовать Ctrl+C и Ctrl+V для копирования и вставки вместо старых сочетаний клавиш IBM CUA Ctrl+Ins и Shift+Ins, которые, возможно, требуют больше усилий, но имеют большое преимущество: ни с чем не ссориться. (Обратите внимание, что обычно ярлыки CUA прекрасно работают в Windows 10, в том числе в окнах консоли.)
Итак, теперь мы имеем Microsoft, повторяющую глупость, которую пользователи Linux уже давно проклинают, с терминальными приложениями с графическим интерфейсом, случайным образом решающим перехватывать определенные клавиши и комбинации, оставляя их недоступными для программного обеспечения, работающего внутри терминала. Если консольное приложение использует Ctrl+V, в Windows 10 ему может не повезти, и оно никогда не увидит эту комбинацию клавиш. Это явное столкновение ожиданий, когда пользователи, которые никогда не покидали остров Windows, убеждены, что Ctrl+V всегда должно означать «вставить», а пользователи с разным опытом расстроены тем, что не могут использовать Ctrl+V для того, что им нужно.