Як відкрити контекстне меню мого комп'ютера. Контекстне меню

Контекстне меню - розділ Філософія, Департамент Інформатика та Інформаційні системи контекстне Меню - Це Меню, Яке Містить Групу Команд, Безпосередньо ...

Для виклику контекстного меню треба спочатку провести фіксацію покажчика миші на вибраному об'єкті, а потім на ньому зробити клацання правою кнопкою. Вид контекстного меню може бути різним для різних елементів. На малюнку 3 представлений вид контекстного меню для робочого столу.

Мал. 3. Робочий стіл з контекстним меню.

Контекстне меню для Робочого столу містить наступні опції:

- «Упорядкувати значки» - має в своєму розпорядженні значки (ярлики) в алфавітному порядку імені, по типу, за розміром, за датою і автоматично;

- «Знову» - вибудовує значки по прямій лінії;

- «Створити» - дозволяє створити нову папку (каталог) або ярлик на Робочому столі;

- «Властивості». Служить для установки і зміни налаштувань Робочого столу, екрана і параметрів дисплея.

Якщо в меню зліва від назви команди (опції) розташована стрілка у вигляді трикутника, то це означає, що якщо на цю опцію встановити покажчик миші, то з'явиться спливаюче меню, що містить команди, які стосуються цієї опції.

Для того, щоб створити на Робочому столі папку треба встановити покажчик миші на поверхню столу, включити контекстне меню клацанням правої кнопки, перевести покажчик на опцію «Створити» і виберіть у спливаючому меню провести фіксацію на потрібному пункті. Після цього на поверхні Робочого столу з'явиться зображення папки, де в поле, виділеним іншим кольором, слід надрукувати ім'я папки.

Створення ярлика проводиться аналогічно створенню папки, але після вибору команди «Ярлик» на екрані з'явиться діалогове вікно, в якому треба вказати повний маршрут до запускающему файлу програми, яка буде включатися при виконанні подвійної фіксації на створеному ярлику.

Що будемо робити з отриманим матеріалом:

Якщо цей матеріал виявився корисним ля Вас, Ви можете зберегти його на свою сторінку в соціальних мережах:

Всі теми даного розділу:

функції
   Функціямів Microsoft Excel  називають об'єднання декількох обчислювальних операцій для вирішення певної задачі. Функції в Microsoft Excel являють собою формули, які їм

Копіювання і переміщення даних
Для переміщення і копіювання вмісту комірок використовується буфер проміжного зберігання інформації (Clipboard), що дозволяє переміщати дані як в межах таб

Буфер обміну
   У Microsoft Excel 2000 існує буфер обміну на 12 вічок, за допомогою якого можна копіювати фрагменти таблиці не тільки в межах Excel але й в інші додатки, наприклад, в Microsoft Word. дл

Пошук даних
   Щоб знайти деяку текстову рядок або число, необхідно: ¯ в меню Правка вибрати пункт Найти; ¯ в поле Що діалогового вікна Знайти вказати, що необ

маски форматів
   Маски форматів чисел дозволяють керувати відображенням значень у комірках. Значення масок наступне. Основний - числа виводяться в тому форматі, в якому вони були введені.

Вирівнювання вмісту комірок
   Вміст осередків може бути вирівняно по лівому краю, по правому краю або по центру. На новому робочому аркуші усі комірки мають формат Звичайний, в якому числа, дати і час вирівнюються по правому до

встановлення шрифту
   Для встановлення шрифту необхідно: ¯ виділити групу осередків; ¯ в меню Формат вибрати команду Ячейки; ¯ вибрати укладку Шрифт;

Зміна розмірів рядків і стовпців
   За замовчуванням осередку мають стандартну ширину і висоту. Висота рядка визначається розміром шрифту. Для зміни висоти рядка або ширини шпальти можна пересунути межу заголовка до необхідного

оформлення таблиць
   Таблиці в Microsoft Excel можна обрамити рамкою і заповнити різними кольорами. Для обрамлення необхідно: ¯ виділити осередки, які необхідно обрамити; ¯ в меню Форма

Групування елементів таблиці
   Microsoft Excel дозволяє групувати елементи в зведеної таблиці  для того, щоб створити один елемент. Наприклад, для того, щоб згрупувати місяці в квартали для побудови діаграми або для пе

фіксація подокон
   Іноді необхідно зафіксувати одну частину таблиці. Наприклад, зафіксувати заголовок таблиці, щоб він завжди був присутній на екрані. Для фіксації тільки вертикальних або тільки горизонтальних за

Присвоєння імені вічку, інтервалу або формулі
   При зверненні до осередку, діапазону або формулі замість адреси вічок можна використовувати привласнені їм імена. Щоб привласнити ім'я формулі необхідно: ¯ в меню Вставка вибрати пункт Имя

створення приміток
   Microsoft Excel дозволяє додавати текстові примітки до осередків. Це особливо корисно в одному з наступних випадків: ¯ робочий аркуш використовується спільно декількома користувачами

Сортування даних
Сортування дозволяє упорядкувати елементи рядка в таблиці по будь-якому полю. Наприклад, щоб впорядкувати дані за ціною виробу. Для сортування даних слід виділити одну комірку таблиці і викликати кома

форми даних
   При виконанні характерних для баз даних операцій, таких як пошук, сортування, підведення підсумків, Microsoft Excel автоматично розглядає таблицю як базу даних. При перегляді, изме

Встановлення діапазону критеріїв
   Критерії бувають двох типів. ¯ Критерії обчислення - це критерії, які є результатом обчислення формули. Наприклад, інтервал критеріїв = F7\u003e СРЗНАЧ ($ F $ 7: $ F $

Автофільтр
   Команда Автофільтр встановлює кнопки прихованих переліків (кнопки зі стрілкою) безпосередньо в рядок з іменами стовпців. З їх допомогою можна вибрати записи бази даних, які слід вивести на

Розширений фільтр
   Команда Розширений фільтр дозволяє фільтрувати дані з використанням діапазону критеріїв для виведення тільки записів, які відповідають певним критеріям. При повторній фільтрації будуть Просимо

Лекція 18, 19.
   Робота з презентаціями в середовищі MS PowerPoint: загальні відомості; екранний інтерфейс, запуск і настройка. Створення нової презентації та оперування структурою; оформлення презентацій; показ пре

Типи даних. Бази даних Microsoft Access працюють з наступними типами даних.
   · Текстовий - тип даних, використовуваний для зберігання звичайного неформатированного тексту обмеженого розміру; · Поле Мемо - спеціальний тип даних для зберігання великих обсягів тексту (до 6

Проблеми реляційного підходу
   Можна довести, що будь-яку структуру даних можна перетворити в просту двомірну таблицю. Таке уявлення є найбільш зручним і для користувача, і для машини, - переважна більшостей

нормалізація
   Ми вже говорили, що процес перетворення ієрархічної або мережевий структури даних в реляційну називається нормалізацією. Зовні ця операція дуже проста, але містить деякі нюанси, ігнорують

Достовірність інформації
   Оскільки первинне заповнення таблиць і введення їх в машину веде людина, помилки в даних є не виключенням, а правилом, і будь-яка ІС повинна мати засіб для діагностики та виправлення помилок.

Основи розробки бази даних
   Перш ніж приступати до роботи з базою даних, в першу чергу необхідно вибрати модель представлення даних. Вона повинна відповідати наступним вимогам: · Наочність уявлення інфор

структура таблиці
Структура таблиці (також називається визначенням таблиці) специфицируется при створенні таблиці. Структура таблиці повинна бути спроектована і створена перед введенням в таблицю будь-яких даних. вона

створення таблиці
   Так як таблиці - об'єкти, які будуть зберігати більшу частину даних програми, підходити до проектування таблиць необхідно з усією ретельністю. Правильна розробка таблиць включає багато асп

Вибір для поля таблиці типу даного
   Тип даного поля таблиці можна вибрати в списку, що розкривається в стовпці Тип данних.Прі виборі типу даних, які використовуються в поле, необхідно враховувати наступне: 1. які з

Властивість Розмір поля
   Властивість Розмір поляопределяет максимальний розмір даних, які можуть зберігатися в полях з типом даних Текстовий, Числовий або Лічильник. Якщо властивість Тип данн

Поле лічильника і реплікація
   Код реплікації використовується при реплікації бази даних для створення унікальних ідентифікаторів, що забезпечують синхронізацію реплік. При реплікації бази даних необхідно визначити відповідний разм

Властивість Формат поля
   Властивість Формат поляпозволяет вказати формати виводу тексту, чисел, дат і значень часу на екран і на друк. Наприклад, для поля Ціна розумно вказати у властивості Формат п

Властивість Формат поля для числових і грошових полів
   Властивість Формат поляпозволяет вказати використання вбудованих і спеціальних числових форматів для числових і грошових типів даних. У наступній таблиці наводяться вбудовані зна

Властивість Формат поля для текстових та МЕМО-полів
   Властивість Формат поляпозволяет створювати спеціальні формати для текстових та МЕМО-полів за допомогою спеціальних символів. Для цього використовуються такі символи:

Формат поля і маска введення даних
   У Microsoft Access до схожих результатів призводить зміна двох властивостей полів: властивість Формат поля властивість Маска ввода.Свойство Формат поляісп

простий ключ
   Якщо поле містить унікальні значення, такі як коди чи інвентарні номери, то це поле можна визначити як ключове. Якщо вибране поле містить повторювані або порожні значення, то воно не б

індекси
   Індекси - об'єкти бази даних, які забезпечують швидкий доступ  до окремих рядків в таблиці. Індекс створюється з метою підвищення продуктивності операцій запитів і сортування даних таблиці

створення індексу
Створити індекси, як і ключі, можна по одному або декількох полях. Складові індекси дозволяють при відборі даних групувати записи, в яких перші поля можуть мати однакові значення. індекс

обмеження Onigue
   Обмеження Unigue запобігає введення в поле значень, що повторюються. Цей тип обмеження може бути встановлено як для одного поля, так і для декількох полів складеного ключа. на

Загальна картина обмежень і підтримки цілісності даних
   Обмеження - деякий обмежує умова. У базі даних - загальне поняття, що охоплює широке коло аспектів управління базою даних: ключі, значення, типи і формати даних і т. Д. Обмеження

Обмеження в базі даних
   Обмеження в базі даних - декларативно певне правило, яке обмежує значення, які можуть бути введені в стовпець або набір стовпців в таблиці. Обмеження бази даних є деклараті

Обмеження Not Null
   Обмеження Not Null забороняє введення в стовпець таблиці порожніх значень. Воно завжди застосовується до окремих стовпців. Обмеження Not Null використовуються, щоб гарантувати, що для важливих даних все

обмеження Unique
   Обмеження Unique забороняє користувачеві введення в стовпець або набір стовпців дубльованих значень. Обмеження Unique може активуватися для окремого стовпця або для комбінації стовпців. У сел

Підтримка цілісності даних
   При підтримці посилальної цілісності між головною і підлеглою таблицями часто використовуються наступні правила: ° підпорядкована рядок не може бути вставлена, поки не існує головна з

Каскадне оновлення та каскадне видалення
   Для зв'язків, для яких визначена цілісність даних, користувач має можливість вказати, чи слід автоматично виконувати для пов'язаних записів операції каскадного оновлення та каскадного у

Комп'ютерні мережі, мережеві та телекомунікаційні технології.
   Локальні і глобальні комп'ютерні мережі. Ресурси і можливості Internet. Поняття про HTML-файлах. Гіпертекстові посилання. Пошук інформації в Internet. Internet Explorer  і Outlook Express. пр

Основи захисту інформації.
   Проблеми комп'ютерних вірусів. Засоби захисту від комп'ютерних вірусів. Способи відновлення пошкодженої інформації. Необхідність архівації інформації. Програми і методика архівації.

Сучасні програмні засоби.
Мова програмування Turbo Pascal. Алфавіт. Основні конструкції мови. Структура і типи даних. Арифметичні і логічні операції. Операції відносини. Стандартні функції і нестандартні ма

   Контекстне меню це меню, яке містить команди, які стосуються об'єкту, на який в даний момент  вказує курсор. Це меню ще часто називають меню правого кліка - через те, що історично воно створювалося правим кліком миші в Windows.

Контекстне меню повідомлення в Apple Mail (зліва) і Windows Mail (праворуч).

Чи варто використовувати контекстні меню?

. Я настійно не раджу використовувати їх для інтернет-магазинів, як, наприклад, Lands End або Amazon. Я також не раджу використовувати контекстні меню для споживчих сайтів, які не потребують складних взаємодій: банківських сайтів, сайтів знайомств, навіть для Facebook.

Вважаю, що контекстні меню найбільш ефективні в серйозних корпоративних додатках, Які користувач використовує часто і в яких добре розбирається. У таких додатках контекстні меню надзвичайно корисні. Чому?

Насамперед, контекстні меню допомагають економити руху миші. Якщо користувач змушений часто використовувати повторювані дії, то використання контекстного меню допомагає вберегти від непотрібних рухів - замість того, щоб вибирати об'єкти, а потім «йти курсором» в тулбар для того, щоб вибрати будь-яку дію, користувач може зробити все прямо на місці .

По-друге, контекстні меню допомагають користувачам більше дізнатися про об'єкти  в додатку. Відкриваючи контекстне меню, вони бачать, які команди доступні для цього об'єкта. Це допомагає користувачам зрозуміти з чим вони взаємодіють в даний момент часу і що додаток дозволяє зробити з об'єктом цього типу.

Однак навіть в таких додатках ви можете помітити що багато користувачів взагалі не користуються контекстним меню. Здебільшого це та ж група користувачів, яка також не використовує гарячі клавіші. Тому слід змиритися з тим, що не всі ваші користувачі будуть користуватися контекстними меню, і створювати свій продукт виходячи з цих міркувань (про це далі).

Отже, якщо ви твердо вирішили що без контекстного меню вам не обійтися, то давайте подумаємо як нам правильно його зробити.

Як викликається контекстне меню?

Традиційно в Windows-додатках контекстне меню викликається наведенням курсора на об'єкт і кліком по ньому правою кнопкою миші. У MacOS-системах користувач також може використовувати праву кнопку миші або ж може клікнути по об'єкту лівою кнопкою, затиснувши при цьому кнопку Control. Зазвичай ця дія називається просто « правий клік».

Правий клік в будь-якій точці об'єкта повинен викликати контекстне меню. Якщо це іконка з підписом, то правий клік і по іконці, і по підпису повинні викликати один і той же контекстне меню. Якщо об'єкт - це рядок в таблиці, то один і той же меню повинно відкриватися незалежно від того, в якому місці цього рядка користувач клацне. Ніколи, чуєте, ніколи  Не показувати різні контекстні меню в залежності від того, в якому стовпці цього рядка клікнув користувач.

Невелике зауваження:  У світі пристроїв з сенсорним екранами (таких, наприклад, як iPad), у нас немає курсору, який можна навести на об'єкт. В такому випадку можна швидко назвати три можливі способи  вказувати на об'єкт:

  • Показувати контекстне меню відразу після натискання на об'єкт (проте це може дратувати)
  • Показувати контекстне меню після натискання пальцем і утримання натискання на частку секунди (в такому випадку завжди виникає проблема неочевидності, але це краще ніж перший варіант)
  • Додавання контрола, який викликає контекстне меню (можливо, це найкращий шлях вирішення проблеми - про нього розказано нижче).

Контекстне меню для графічного файлу в MacOS X (зліва) і Windows Vista (праворуч).

Додавання елемента для виклику контекстного меню

  У деяких веб-додатках є елемент інтерфейсу, натискання по якому викликає контекстне меню. Він зазвичай називається «іконкою меню» - це іконка, що зображає стрілку вниз, яка знаходиться прямо біля назви (або зображення) об'єкта.

При використанні такого контрола користувач може натиснути лівою або правою кнопкою миші, щоб відкрити контекстне меню ( ніколи не використовуйте наведення мишкою як спосіб відкриття меню). Найгірше, що ви можете зробити в даному випадку це не показувати меню тільки тому, що користувач натиснув по контролю не правою кнопкою мишки, а лівої.


Контрол меню, що показує що в даному випадку меню доступно.

Якщо ви збираєтеся використовувати контрол меню, то варто зробити так, щоб натискання на нього відрізнялося від натискання на сам об'єкт. В наведеному вище прикладі якщо користувач клацає де-небудь в рядку Ahmed Hassain, то він просто виділяє весь рядок Ahmed Hassain, однак якщо він клацає по іконці меню для цього рядка, то він отримує контекстне меню (і рядок не виділяється).
  Крім того, користувач також повинен мати можливість просто натиснути правою кнопкою в будь-якому місці рядка, щоб відкрити контекстне меню - без необхідності натискати на іконку.

Чи варто використовувати контрол меню?  Воно відмінно вирішує одну з великих проблем з контекстними меню: багато користувачів не знають, що контекстне меню доступно. У веб-додатках користувачі часто припускають що контекстного меню немає (його іноді немає навіть в десктопних додатках).

Контрол меню допомагає показати що контекстне меню є і підштовхує користувача використовувати його. З іншого боку, є такі користувачі, які завжди передбачають що меню є, і вони будуть самі намагатися відкрити його. Якщо ви робите додаток для цієї групи користувачів, то вам не обов'язково робити помітний контрол для виклику меню.

Велика проблема з іконкою меню полягає в тому, що вона часто повторюється на екрані і засмічує його. Вирішити цю проблему можна, показуючи іконку тільки тоді, коли курсор миші наводиться на об'єкт.


Контрол меню, який з'являється при наведенні курсором миші.

Ще одна проблема контрола меню полягає в тому, що його складно прикріпити до деяких об'єктів. Візьмемо, наприклад, контекстне меню для тулбару: тулбар сам по собі є великим елементом інтерфейсу, і не зовсім зрозуміло, куди в ньому ставити контрол меню, так щоб було зрозуміло, що тут є меню. Тому, контроли меню працюють далеко не скрізь.

Що повинно міститися в контекстному меню?

Контекстне меню повинно містити команди, які відносяться до виділеного елементу. Це означає що воно може містити команди з рядка меню або панелі інструментів, які можна застосувати до виділеного елементу.

Контекстне меню не повинно містити ВСЕ доступні для об'єкта команди  - це робить меню величезним і важким для використання. Зосередьтеся на найбільш часто використовуваних і найбільш важливих командах. Перевантажити меню непотрібними командами - це найгірше, що ви можете з ним зробити. Зосередьтеся на важливому, зменшуйте бардак.

Ось, наприклад, три контекстних меню для виділеного фрагмента тексту: в Dreamweaver, Microsoft Word і Apple Pages. Меню Dreamweaver намагається бути схожим на швейцарський складаний ножик і пропонує всі можливі команди в одному контекстному меню. Через це воно виходить настільки великим, з купою вкладених списків, що їм стає важко користуватися. Особисто я уникаю викликати контекстне меню в Dreamweaver.

У ньому найбільш часто використовувані функції (наприклад «Копіювати» або «Вставити») розташовуються ближче до кінця списку. В Word і Pages навпаки, часто використовувані команди виносяться наверх списку, а команди, що містять вкладені списки - в кінець. Вони також відібрали для меню тільки самі важливі функції, І краще організували їх.

Якщо ви хочете зробити своє контекстне меню зручніше, залиште в ньому тільки 60% найважливіших команд замість всіх 100%. Якщо в одному меню спробувати вмістити всі важливі команди, то це не приведе ні до чого доброго - розміри меню збільшаться, а зручність його використання і швидкість роботи з ним навпаки, знизиться.
Пам'ятайте: головна причина, по якій контекстні меню взагалі використовуються - це можливість заощадити час користувача.


Контекстні меню в Dreamweaver, Microsoft Word і Apple Pages

Контекстне меню не повинно містити команди, що не відносяться до виділеного об'єкту  (Такі, наприклад, як «Оновити сторінку»). Концентруйтеся на тих командах, які були б корисні для роботи з тим об'єктом, на який наводить користувач.

Коли можливо, гуртуйте команди в блоки від 1 до 6 штук в кожному. Відокремлюйте блоки лініями. Найбільш часто використовувані команди слід виносити наверх списку, найменш часто використовувані - прибирати вниз. Якщо команда використовується особливо рідко, то, можливо їй не місце в контекстному меню.

Не соромтеся використовувати вкладені списки, Проте команди з вкладеними списками слід відносити вниз контекстного меню. Мені не подобаються вкладені списки, тому що через них користувач може зробити помилку, і крім того на їх відкриття витрачається багато часу - в той час як сенс контекстних меню зводиться до економії часу.

Крім цього ви можете використовувати нестандартні елементи меню.
  Наприклад, разом з контекстним меню в Microsoft Word 2007 відкривається плаваюча палітра, а в контекстному меню файлу в Mac OS є спеціальні кольорові кнопки вибору кольору ярлика. Тільки тому що ми говоримо «меню», не означає що воно повинно бути обмежене тільки текстом.


Контекстне меню може бути більше ніж просто список команд

У контекстному меню не можуть міститися унікальні команди, властиві тільки для нього. Іншими словами, будь-яка команда контекстного меню повинна бути доступна також іншими способами: на панелі інструментів, рядку меню або в будь-якому іншому місці на екрані. Пам'ятайте, що більша частина користувачів швидше за все ні разу не відкриє контекстного меню у вашому додатку. А це означає, що вони не побачать команду, яка присутня тільки там.

Зазвичай я розміщую «команду за замовчуванням» першої в контекстному меню. Це та команда, яка здійсниться при подвійному натисканні на об'єкті (наприклад, команда Open в контекстному меню файлу). Якщо в об'єкта немає команди за замовчуванням, концентруйтеся на найбільш використовуваних командах.

Ви можете використовувати назву об'єкта в контекстному меню для того, щоб зробити команди зрозуміліше. Наприклад, замість назви команди «Відкрити» ви можете використовувати словосполучення «Відкрити Скріншот.png». При використанні цього прийому буває складно знайти золоту середину - потрібно зробити меню досить самоочевидним, але не надто багатослівним. Меню в Mac OS містить назву об'єкта в одних командах, і не містить в інших.

У своїх контекстних меню я не використовую іконки. Чесно кажучи, я взагалі не використовую їх в своїх додатках - на мою думку вони засмічують інтерфейс і не несуть особливої ​​користі ( примітка перекладачів - о_О). Однак це тільки моя думка, а ви вирішуйте самі.
  У контекстних меню багатьох додатків немає вказівки гарячих клавіш біля команд. Думаю, що це зроблено для того, щоб меню здавалося легше. Тут так само вирішувати вам.

Що щодо кількох виділених об'єктів?

  Зазвичай контекстне меню викликається для одного виділеного об'єкта, але що робити, якщо користувач вибрав кілька об'єктів, і потім відкриває контекстне меню? Давайте розглянемо кілька прикладів.

Уявімо що у нас є шість об'єктів: чотири папки (А, В, С, D) і два графічних файлу (Е і F).

Папки та файли в Windows

приклад 1

  Користувач вибирає папки A, B, C, а потім викликає контекстне меню, перебуваючи мишкою на папці D (важливо: папка D спочатку не була обрана). У такому випадку для об'єктів А, В, і С необхідно скасувати виділення і відкрити контекстне меню тільки на виділеному D.


приклад 2

  Якщо користувач виділяє А, В і С, а потім викликає контекстне меню, перебуваючи мишкою на С, то спочатку ми повинні визначити, чи є А, В і С об'єктами одного типу. Інакше кажучи, у всіх цих об'єктів однакове меню? Якщо так, то все просто: зробіть, щоб усі команди в цьому меню застосовувалися до всіх виділених об'єктах.

Якщо, наприклад, це буде команда «Відкрити», то вона повинна відкрити всі три об'єкти. Якщо є команда, яку не можна застосувати більше ніж до одного об'єкту, то потрібно зробити команду неактивною, не забираючи її з меню.


Раніше я говорив про те, що ми можемо написати «Відкрити Скріншот.png» замість «Відкрити» для того, щоб допомогти користувачеві зрозуміти, до чого команда застосовується. Точно так же в нашому випадку ми можемо написати «Відкрити 3 об'єкти» - це допоможе зрозуміти, що дія застосовується до всіх виділених об'єктів. У нашому випадку контекстне меню може виглядати наступним чином:

  • Відкрити 3 об'єкти
  • Видалити 3 об'єкти
  • Копіювати 3 об'єкти
Подібний підхід використовує Apple в Mac OS X, однак вона не використовує такий підхід повсюдно. Я не можу зрозуміти чому в контекстному меню зустрічається словосполучення «Стиснути 3 файлу», але ніде не говориться «Відкрити 3 файлу». Дивно.

приклад 3

  А тепер давайте розглянемо випадок, коли користувач вибирає кілька різнорідних об'єктів, наприклад папки А, B і графічний файл Е. Як ви розумієте, контекстні меню для папок і графічних файлів абсолютно різні.
  Це так зване змішане виділення. У прикладі нижче ви можете побачити контекстне меню для папки (ліворуч) і для зображення (праворуч) - вони сильно розрізняються.


контекстне меню Windows  для папок (зліва) і графічних файлів (праворуч)

Що ж нам робити в разі змішаного виділення, яке контекстне меню використовувати? Найпоширеніша відповідь - показувати контекстне меню для того об'єкта, на який користувач навів курсор миші.

Використовуйте контекстне меню об'єкта, на який наведено курсор миші

  Наприклад, користувач вибирає А, В і E змішаним виділенням і викликає контекстне меню на Е. Контекстне меню, яке ви бачите це контекстне меню для Е (ви завжди будете бачити контекстне меню для об'єкта, на якому розташований курсор миші).

Зліва:  Виділена папка А, показується контекстне меню для папки.
В центрі:  Виділено зображення Е, показується контекстне меню для графічного файлу Е.
справа:  Вироблені дві папки (А і В) і графічний файл Е, показується контекстне меню для файлу Е.


Контекстне меню в разі змішаного виділення

Однак якщо користувач вибере з контекстного меню для файлів різного типу команду, яка може застосуватися до всіх виділених об'єктах, слід зробити, щоб це відбувалося. Так, якщо обрана команда «Видалити», повинні бути видалені всі виділені об'єкти, навіть якщо це об'єкти різного типу.

З іншого боку, якщо користувач викличе меню для E і вибере команду, яка не може застосуватися до A і B, вона таким чином, застосовується тільки до E. Якщо користувач вибере команду «Експорт», і вона може застосуватися тільки до E, тільки E буде експортовано.

На двох малюнках нижче показано одне і те ж виділення: A, B і E. На малюнку зліва відкрито контекстне меню на B, і ми бачимо меню для папок. На малюнку праворуч у нас виділені ті ж об'єкти, але меню відкрито на E, і тому ми бачимо меню для файлу зображення.


Ви будете здивовані - такий підхід використовується в переважній більшості додатків, якими ви регулярно користуєтеся. Задумайтеся про це: якщо ви виберете команду «Видалити», то очікуєте, що втечуть всі три об'єкти.
  Це одна з тих речей, які звучать складно, але працюють для користувачів.

Проблема з таким підходом полягає в тому, що він не завжди передбачуваний. Вибираючи «Експорт» ви не знаєте точно, які з об'єктів будуть експортовані. Ви можете бути впевнені в принципах роботи такого підходу тільки в тих додатках, які вже добре знаєте.
  Для того, щоб позбутися від такої невідповідності, я ще раз можу запропонувати використовувати зрозумілу назву команд, наприклад:

  • Видалити 3 файлу
  • експортувати Скріншот.png
Думаю це сильно поліпшить і спростить ситуацію.

Цей підхід має одну складність в реалізації - вам потрібно пройтися по всіх командах у всіх контекстних меню і подумати, які команди можна застосувати в змішаних виділеннях, а які не можна. Чим більше схожі контекстні меню для різних об'єктів, тим простіше буде це завдання для вас. У Mac OS X контекстні меню для папок і файлів майже однакові, що сильно спростило життя Apple.


Змішане виділення і контекстні меню в OS X

Цей приклад показує, що кращий спосіб  вирішити проблему це просто уникнути її появи. Іншими словами, якщо ви спробуєте не використовувати різні контекстні меню для різних об'єктів, то проблема, пов'язана зі змішаним виділення не буде загрожувати вам.
  Тому одним з рішень було б робити контекстні меню однаковими для всіх типів об'єктів.

А що якщо скидати виділення?

Якщо користувач виділяє кілька об'єктів (наприклад, А, В і Е), а потім викликає контекстне меню на будь-якому з об'єктів, виділення скидається. Виділяється об'єкт, на якому користувач викликав меню, і меню застосовується тільки для цього об'єкта.

Особисто мені не подобається такий підхід, так як іноді бувають випадки, коли користувач витратив багато часу на те, щоб зробити певний виділення. Несподіваний скидання виділення в такому випадку буде неприємністю. Думаю, цього підходу варто уникати.

А як щодо побудови нового меню?

  Іншим рішенням проблеми може стати створення нового контекстного меню, що містить тільки команди, які підходять одночасно для всіх виділених об'єктів.

Я можу сказати так - не варто. Це погано з цілого ряду причин. Це суміш проблем в області дизайну та програмування - кожен раз, коли ви додаєте нову команду в будь-яке меню, вам доведеться переробляти всі можливі комбінації меню. Це не весело, повірте мені.

І що найгірше - такий підхід поганий для самих користувачів. Це нестандартне рішення і воно відривається людьми. Користувач в меню спирається на позиційну пам'ять (певні патерни, які наш мозок формує для полегшення сканування інтерфейсу), тобто він пам'ятає ДЕв меню знаходяться команди.

Коли ви показуєте йому незвичні меню, що змінюються в залежності від поточного виділення, ви вносите безлад в його позиційну пам'ять, через що користувач витрачає більше часу на роботу з меню.
  Тобто, через такого підходу користувач може зробити більше помилок і витратить більше часу - повна протилежність того, навіщо ми взагалі використовуємо контекстні меню.

висновки

  А тепер давайте підведемо підсумки:
Контекстні меню підходять не для всіх додатків. Перш ніж створювати їх, переконайтеся що користувачі будуть їх застосовувати, і що вони їм потрібні.

Якщо ви не впевнені - проведіть кілька юзабіліті-тестів і переконайтеся, що користувачі хоча б намагаються їх відкрити. Якщо тестери виконують повторювані рутинні завдання і жоден з них ні разу не відкрив контекстного меню, воно не потрібно.

Мета створення контекстного меню - економія часу. Створюйте їх такими, щоб вони дійсно економили час. Робіть їх короткими і добре організованими.
  Подумайте над шляхами вдосконалення дизайну контекстного меню.

Я згадувала кілька ідей: додавання контрола меню, який з'являється при наведенні миші на об'єкт; вказівка ​​в меню, які об'єкти торкнеться та чи інша команда. Я впевнена, можливостей для розвитку дуже багато. Не соромтеся брати за основу цю «стандартну» формулу і вдосконалити її.

З цієї статті ви дізнаєтеся, як додати в контекстне меню файлів пункт для їх відкриття в потрібній програмі. На прикладі текстового редактора я покажу, як редагувати в ньому файли зі звичайними і повними правами. Ви зможете використовувати цей спосіб для відкриття файлів з контекстного меню в будь-яких програмах.

Написати матеріал мене підштовхнуло обговорення проблеми, з якою стикаються люди, які використовують UAC, при спробі швидко відредагувати файл, розташований в системній папці. Я розповім, як вирішив цю проблему для себе.

Втім, відкриття файлів з повними правами  буде присвячена друга частина статті. А сьогодні мова піде про пункт меню для відкриття файлів зі звичайними правами. Цього достатньо в більшості випадків, а при відключеному контролі облікових записів - завжди.

  Мета - прискорення роботи

Додавши можливість відкриття файлів в улюбленій програмі з контекстного меню, ви прискорюєте свою роботу в системі. Вам не потрібно використовувати діалогове вікно "Відкрити за допомогою», яке, до речі, марно, якщо треба відкрити файл з повними правами.

Блокнот, що входить до складу Windows 7, інтегрований в контекстне меню. Для багатьох типів файлів в ньому відображається пункт «Змінити», за допомогою якого файл можна швидко відкрити в блокноті.

Однак цей пункт є далеко не у всіх типів файлів, не кажучи вже про файлах без розширень. Можна підвищити швидкість своєї роботи в системі, додавши в контекстне меню пункт для відкриття будь-яких  файлів в блокноті.

Не здивуюся, якщо замість блокнота ви використовуєте сторонній редактор з більш широкими можливостями. Більшість текстових редакторів вміє інтегруватися в контекстне меню. Наприклад, Notepad ++ робить це самостійно, а - допомогою плагінів.

Однак при включеному UAC цей спосіб не підходить для редагування файлів в системних папках Program Files або Windows (класичний приклад - файл   hosts). Навіть якщо файл відкриється, зберегти зміни в ньому не вдасться.

Це відбувається тому, що з контекстного меню редактор запускається зі звичайними правами, наслідуючи права провідника. А для збереження файлів у системних папках потрібні права адміністратора.

Крім того, не всі програми вміють інтегруватися в контекстне меню, і далі ми займемося усуненням цього недоліку. Якщо ви читали інші мої статті, вам багато чого буде знайоме.

  Додавання пункту в контекстне меню всіх типів файлів

Додати в контекстне меню запуск програми зі звичайними правами дуже просто, і я покажу це на прикладі блокнота.

  Ручна правка реєстру

Пункт меню додається за три кроки.

  1. Перейдіть в розділ реєстру HKEY_CLASSES_ROOT \\ * \\ shell

    Пункт меню, для якого створено цей розділ, відобразиться для будь-якого файлу у всіх користувачів.

  2. Створіть підрозділ з будь-яким ім'ям, наприклад, Editor, А в ньому створіть рядковіпараметри:
  • параметр MUIVerb  (Обов'язковий) відповідає за назву пункту меню, тому значення можете вибирати будь-який. Я назвав своє Відкрити в Блокноті.
  • параметр Icon  (Необов'язковий) задає значок для пункту меню. Можна задати шлях до бібліотеки (dll) і номер ресурсу (значка), або повний шлях до виконуваного файлу  (Якщо він у системній папці, досить вказати тільки ім'я). Для свого пункту я задав стандартний значок notepad.exe.
  • параметр Position  (Необов'язковий) відповідає за розташування пункту в контекстному меню. Ви можете задати йому значення Top  (Найперший пункт меню) або Bottom  (Внизу меню). Якщо значення не ставити, пункт виявиться у верхній частині меню, після стандартних пунктів «Відкрити», «Друк» і т.д.
  • параметр Extended  (Необов'язковий) відповідає за відображення пункту в меню. Коли параметр присутній, щоб побачити створений пункт, потрібно викликати контекстне меню, утримуючи клавішу SHIFT. Цьому параметру не потрібні значення.
  • В розділі Editor  створіть підрозділ command, А в ньому двічі клацніть параметр (За замовчуванням)  і задайте значення notepad.exe% 1

    Якщо ви прописуєте сторонній редактор, вкажіть повний шлях до нього. наприклад:

    C: \\ Program Files \\ Notepad ++ \\ notepad ++. Exe% 1

  • У реєстрі це виглядає приблизно так:


      REG-файл

    Ви можете імпортувати наведений нижче REG-файл, попередньо внісши в нього необхідні правки.

    Windows Registry Editor Version 5.00 "MUIVerb" = "Відкрити в Блокноті" "Icon" = "notepad.exe"; "Position" = "Bottom"; "Extended" = ""; Блокнот @ = "notepad.exe% 1"; Notepad ++; @ = "C: \\\\ Program Files \\\\ Notepad ++ \\\\ notepad ++. Exe% 1"

    Зверніть увагу, що в шляху до додатка використовуються подвійні Слеш.

      результат

    Все готово! У контекстному меню з'явився пункт Відкрити в Блокноті, І він відображається для всіх файлів.

    Трюк з додаванням пункту в контекстне меню файлів, звичайно, не новий. З деякими варіаціями він працює і в Windows XP, де назвою пункту меню ім'я розділу реєстру, а значки не підтримуються.

      Неіснуючий розділ реєстру

    А ви знаєте, що ми внесли зміни в неіснуючий розділ реєстру? Розділ HKEY_CLASSES_ROOT (HKCR) цікавий тим, що він відсутній фізично. Під його видом в редакторі реєстру відображаються суміщені розділи:

    HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Classes HKEY_CURRENT_USER \\ SOFTWARE \\ Classes

    У HKLM зберігаються глобальні параметри для всіх користувачів, а в HKCU - параметри поточного користувача, при цьому HKCU переважає над HKLM. Тому різні користувачі можуть зіставляти різні програми одного типу файлу. Це дає можливість кожному з них слухати музику в улюбленому програвачі та подорожувати по Інтернету в звичному браузері.

    Якщо ви хочете створити пункт меню тільки для своєї облікового запису, Вносите зміни в розділ HKEY_CURRENT_USER \\ SOFTWARE \\ Classes.

    Розробники Windows позиціонують розділ HKCR для читання, ніж для запису. Це не означає, що записувати туди дані неправильно. Коли ви вносите зміни в розділ HKCR, вони записуються в HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Classes. Це легко перевірити - видаліть створений розділ Editor  з HKLM, і він пропаде з HKCR.

    Через пару днів я покажу, як різними способами  створити в контекстному меню аналогічний пункт для відкриття файлу в програмі з правами адміністратора. Я також розгляну питання одночасного відкриття декількох файлів в програмах, що використовують вкладки для їх відображення.

      А у вас текстовий редактор  інтегрований в контекстне меню?  Який редактор ви віддаєте перевагу і чому?