Любое приложение windows после запуска реализуется как

Обновлено: 04.07.2024

Виртуальным приложениям требуется немного больше времени, чтобы загрузиться по сравнению с приложениями Windows 7, но помимо этого между их выполнением нет никаких значительных отличий. На самом деле, очень трудно догадаться, что приложение является виртуальным.

Виртуальная машина может работать в одном из следующих режимов.

  1. Простой режим. Практически не применяется. Очень похож на использование старых версий Virtual PC или аналогичных средств виртуализации для рабочих станций. Перейти в него можно отключив компоненты интеграции в настройках Windows Virtual PC. При работе недоступны: общий буфер обмена, жесткие диски родительской машины, перенаправление принтеров.
  2. Расширенный режим. Включен по умолчанию. Стартует при запуске Windows XP Mode из меню "Пуск". Это полноэкранный режим Windows XP. Взаимодействие происходит посредством подключения к удаленному рабочему столу виртуальной машины. Благодаря этому становится доступен весь набор компонентов интеграции. В расширенном режиме происходит установка нужных нам приложений и их публикация в Windows 7.
  3. "Прозрачный" (английский термин seamless ) режим. Работа с установленными и опубликованными приложениями происходит в этом режиме по аналогии с обычными программами. Например, опубликованный Microsoft Office появится в меню "Пуск". С его помощью станут открываться файлы с расширениями *.doc, *.xls, *.ppt и.т.п. Кроме того будет доступно сохранение документов на локальные диски и в личные каталоги пользователя (например "Мои Документы").

Усовершенствования в Virtual PC

Режим Windows XP Mode, как мы уже выяснили, состоит из двух компонентов: виртуальной машины (Windows Virtual PC) и лицензионной копии операционной системы Windows XP. Так как одним из компонентов является виртуальная машина, то на ней можно запустить, в роли гостевой системы, не только Windows XP, но и более ранние версии операционных систем Windows, к тому же есть поддержка Linux и BSD систем.

В связи с этим разберем несколько усовершенствований, появившихся в Windows Virtual PC:

  1. Появился ярлык Control Alt Delete, который позволяет передать гостевой операционной системе комбинацию клавиш (Ctrl+Alt+Del) без необходимости переходить к любому меню.
  2. Более важно нововведение – поддержка USB-устройств для гостевых операционных систем. Данная возможность появилась в Windows Virtual PC, несмотря на отсутствие этой поддержки в таких продуктах как Virtual Server и Hyper-V. Одно важное условие – операционной системе требуется монопольный контроль, который означает, что если USB устройство подключено к гостевой операционной системе, то хостовая не имеет доступ к этому устройству. Ну и конечно же, необходимо наличие драйвера USB устройства в гостевой операционной системе.
  3. В виртуальной машине появился доступ к физическим локальным дискам. В окне Мой компьютер можно увидеть несколько сопоставлений дисков.

Создание инкапсулированного приложения

Когда режим интеграции включён (он включён по умолчанию), пользователи и администраторы могут с лёгкостью создавать инкапсулированные приложения. Когда вы устанавливаете программу в режиме XP и копируете ярлык для запуска приложения под XP Mode в папке C:\Documents and Settings\All Users\Start Menu\Programs, то значок появляется и в стартовом меню Windows 7.

Например, в нашей виртуальной машине работало некоторое приложение, которое не работает стабильной в Windows 7. При запуске инкапсулированного приложения мы получаете ещё одно типичное окно на рабочем столе Windows 7.

Если вам нужно установить приложение в режиме XP Mode, то делать это нужно как раз из под инкапсулированной ОС. Установщик отработает как обычно. После того, как программа будет установлена, можно перенести значок запуска в C:\Documents and Settings\All Users\Start Menu\Programs, после чего нажатие по нему приведёт к запуску инкапсулированного в ОС приложения.

Альтернативы Windows XP Mode

VirtualBox - ещё одна бесплатная виртуальная машина. Будучи разработанной Sun Microsystems (Oracle), VirtualBox является проектом с открытым исходным кодом, при этом она содержит всё, что можно было ожидать от подобной машины. Кроме того, в отличие от Windows Virtual PC, VirtualBox поддерживает виртуализацию доступа к 3D-ускорителям.

VirtualBox устанавливает виртуальную машину в чистом виде: вы не получите предварительно настроенной ОС, как в случае Windows XP Mode. Если вам нужна Windows XP, то вам потребуется лицензионная копия Windows XP, а также CD Windows XP или файл ISO.

Вы можете настроить виртуальную машину для загрузки с физического оптического привода или через файл ISO, что запустит обычную установку Windows. Вам придётся пройти через полную установку Windows Setup, прежде чем вы получите виртуальную машину XP под VirtualBox.

Когда вы первый раз запускаете Windows XP под VirtualBox, то необходимо настроить мышь и клавиатуру в виртуальной машине, а с помощью клавиш можно снять с курсора мыши ограничения под гостевой ОС. Как и в случае Windows XP Mode, здесь вряд ли уместно ощущение запуска ещё одной Windows XP под другой ОС, поскольку два интерфейса способны легко запутать пользователей.

По этой причине VirtualBox поддерживает так называемый скрытый ( seamless ) режим. Идея аналогична интеграции Windows XP Mode в host-систему, но реализована она несколько иначе. В скрытом режиме две операционные системы (host-система и гостевая) мирно сосуществуют. Можно даже вывести две панели задач на один и тот же рабочий стол.

Впрочем, когда всё работает нормально, вы можете запускать приложения Windows XP из панели задач XP. Появится окно с приложением и будет казаться, что оно работает в "родном" режиме. Вы будете видеть, что приложение работает под виртуальной машиной, но окно более прозрачное, чем если бы мы запускали сначала виртуальную машину Windows XP в окне, а уже потом в нём же запускали и приложение.

Конечно, есть несколько особенностей, связанных с запуском Windows XP Mode или VirtualBox с лицензионной копией Windows XP:

  1. Нужно следить за обновлением двух разных операционных систем: host-системы и гостевой ОС в виртуальной машине. Для отдельных пользователей это не вызовет проблем, но в бизнес-окружении это может привести к дополнительным сложностям, поскольку обновлять придётся намного большее число компьютеров.
  2. Аппаратная поддержка, включая драйверы. Стандартные устройства, такие как USB-брелоки, оптические приводы и т.д. будут работать. Но со всем более экзотическим могут возникнуть проблемы. Parallels включают доступ к нескольким CPU на системе Xeon 5500 в версии Workstation 4.0 Extreme, но эта функциональность ограничена несколькими рабочими станциями HP и пока не доступна для обычных пользователей.
  3. Большое количество наследственных приложений. В малом бизнесе часто используют старые программы, чьи разработчики уже давно канули в лету. Приходится запускать такие программы на старом оборудовании, которое не всегда просто поддерживать (старые комплектующие бывает сложно найти). Тогда режим XP Mode позволит компании обновить "железо", но при этом сотрудники смогут запускать старые программы.

Если ваша основная цель кроется в запуске старых программ, то производительность не вызовет проблем. Любая современная система, способная работать с Windows 7, будет прекрасно запускать старые приложения в режиме Windows XP Mode, причём вероятно даже лучше, чем старое "железо". Конечно, критическим моментом будут драйверы старого специализированного "железа".

Прочие инструменты виртуализации приложений

Microsoft Enterprise Desktop Virtualization (MED-V) – это корпоративное средство, которое можно использовать для доставки образов Virtual PC компьютерам с центрального репозитория, где вы можете создавать такие образы и управлять ими. Таким образом MED-V помогает уменьшить количество проблем совместимости приложения с ОС, но, в отличие от простой установки Virtual PC на каждом компьютере пользователя, делает это более масштабным и управляемым образом. С помощью MED-V вы можете управлять всем жизненным циклом виртуальных образов, обеспечивать ими аутентифицированных пользователей в среде Active Directory, наблюдать за их использованием и многое другое. Пользователь остается в неизвестности относительно виртуализации, запущенной в фоновом режиме, и видит только одну рабочую среду. MED-V является частью пакета Microsoft Desktop Optimization Pack (MDOP).

Microsoft Application Virtualization (App-V) – это корпоративное средство, которое используется для централизации управления всем жизненным циклом приложения. С помощью App-V администраторы могут динамически отправлять приложения по требованию пользователям, которым они нужны, вместо того, чтобы устанавливать их на каждом пользовательском компьютере. App-V помогает уменьшить количество конфликтов между приложениями, например, когда пользователю нужно запустить две разные версии одного и того же приложения, а установить обе версии локально на одном и том же компьютере не получается. App-V также упрощает управление обновлениями и проверку на совместимость. Кроме того, App-V является частью MDOP.

Краткие итоги

Технологии совместимости устаревших приложений с новой операционной системой Windows 7 позволяют запускать приложения, которые, по ряду причин работают не правильно. К данным технологиям относятся:

  1. Режим совместимости
  2. Режим Windows XP Mode

Первая технология позволяет запускать приложение с совместимыми параметрами, такими как: разрешение экрана, глубина цвета, административные права . Также для этой цели можно использовать заплатки, позволяющие имитировать среду другой версии операционной системы, например Windows XP или Windows 2000. Режим совместимости позволяет как запускать несовместимые приложения (в том числе некоторые драйверы), так и устанавливать их.

Если по каким-либо причинам, функционала режима совместимости недостаточно, можно прибегнуть к "тяжелой артиллерии" - режиму Windows XP Mode . Данный режим позволяет запуска операционную систему Windows XP SP3 в виртуальной машине, тем самым полностью эмулируя работу операционной системы Windows XP. Для повышения удобства использования новая виртуальная машина ( Windows Virtual PC ) позволяет подключать USB-устройства (к примеру, такие как принтеры). Также виртуальная машина обладает функцией интеграции, когда приложение установлено в виртуализированной операционной системе Windows XP и ярлык приложения находится в папке Пуск -> Программы, то такой же ярлык дублируется и в родительскую систему ( Windows 7). При запуске данного ярлыка (при отключенной виртуальной машине) приложение запускается в эмулированной среде, но прозрачно для пользователей, т.е. они не замечают лишние окна интерфейса Windows , кроме окон приложений.

Таким образом, любое приложение , несовместимое в Windows 7, можно запустить, таки или иначе, эмулируя его работу с другой операционной системой.

Ключевые термины

Microsoft Application Virtualization (App-V) – это корпоративное средство, которое используется для централизации управления всем жизненным циклом приложения.

Microsoft Enterprise Desktop Virtualization (MED-V) – это корпоративное средство, которое можно использовать для доставки образов Virtual PC компьютерам с центрального репозитория, где вы можете создавать такие образы и управлять ими.

Windows XP Mode – утилита виртуализации и виртуальная машина Windows XP, позволяющая прозрачно для пользователя запускать несовместимые приложения непосредственно в виртуальной среде Windows XP.

Сегодня уже трудно вспомнить то время, когда не было Windows. Как бы программисты не относились к Windows, нужно признать, что это настоящее, а может быть и будущее компьютерной индустрии.

В системах программирования используется очень мощная и сложная библиотека VCL (Visual Components Library), которая помимо непосредственных абстракций содержит также средства организации взаимодействия с операционной системой. В этой библиотеке находятся компоненты для визуального отображения информации, работы с базами данных, с системными объектами, компоненты для работы с Internet-протоколами, классы для написания своих COM-объектов и многое другое. Модули библиотеки подключаются к компиляции по мере необходимости.

Создавая приложение, программист постоянно решает вопросы взаимодействия программы с операционной системой. Используя систему программирования программист, как правило, избавлен от явного программирования многих действий, т.к. эти действия инкапсулированы в VCL. Однако для понимания поведения и квалифицированного использования компонентов необходимы знания принципов и идей, заложенных в Windows. Кроме того, без знания Windows многие возможности операционной системы могут остаться неиспользованными. Поэтому предлагаемый раздел представляет собой краткое введение в операционную систему Windows.

Выбор обсуждаемых тем обусловлен, в первую очередь, попыткой ответа на вопросы: «Почему операционная система является операционной системой «Windows»(«окна»)?» и «Как из этих «окон» извлечь инструментальные средства разработки программ?».

5.1. Основные концепции Windows

Любую современную программу или программную технологию можно представить как совокупность программных «слоев». Каждый из этих слоев производит свою собственную работу, которая заключается в повышении уровня абстракции производимых операций. Так, самый низший слой (слои) вводит понятия, которые позволяют абстрагироваться от используемого оборудования; следующий слой (слои) позволяет программисту абстрагироваться от сложной последовательности вызовов функций, вводя такое понятие как протокол и т.д. Практически в любом современном программном продукте можно обнаружить и выделить около десятка последовательных слоев абстракции.

Абстракция от оборудования и низкоуровневых протоколов вводится в ядра операционных систем в виде библиотек API (Application Programming Interface). Однако современные тенденции приводят к необходимости абстрагирования и от самих операционных систем, что позволяет переносить программы с одной операционной системы на другую путем простой перекомпиляции (транслируемые программы, в основном, вообще не требуют никаких действий по переносу).

Абстракцию, которая доступна программисту в виде библиотек API, можно назвать базовой. Это самый низкий уровень абстракции, который доступен для прикладного программирования. На уровне ядра системы доступны и более низкие уровни абстракции, однако для их использования необходимо разрабатывать специализированные программы (драйвера, модули). Базовый уровень абстракции (API) предоставляет максимально широкие возможности для прикладного программирования и является наиболее гибким. Однако программирование с использованием API является гораздо более трудоемким и приводит к значительным объемам исходного кода программы, чем программирование с использованием дополнительных библиотек.

Дополнительные библиотеки поставляются со многими средствами разработки с целью уменьшения трудоемкости и сроков разработки программ, что в итоге приводит к повышению их конкурентноспособности. Но применение дополнительных библиотек абстракций приводит к резкому увеличению размеров откомпилированных программ, из-за того что в программу включается код используемых библиотек, к тому же это включение зачастую бывает неэффективным - в программу включаются неиспользуемые участки кода. Кроме того, чем больше уровень абстракции библиотеки, тем сложнее ее код, и тем больше трудностей возникает при решении сложных задач. Приходится учитывать множество взаимосвязей и взаимных влияний отдельных элементов и процессов библиотеки друг на друга. Кроме того, структура и функциональность любой библиотеки обычно рассчитывается на удовлетворение всех потенциально возникающих задач, что приводит к ее громоздкости и неэффективности.

Среди преимуществ операционной системы Windows обычно выделяют следующее:

- графический интерфейс пользователя;

- независимость от аппаратных средств.

5.1.1. Графический интерфейс пользователя. Graphical User Interface 1 (GUI) дает возможность пользователям работать с приложениями максимально удобным способом. Каждое приложение представлено на экране дисплея своим окном, которое выглядит как прямоугольная рабочая область с набором стандартных элементов управления. Окно идентифицируется своим заголовком, имеет кнопки минимизации и максимизации размеров, а также кнопку завершения приложения. Под заголовком обычно находится строка меню для выбора различных команд или режимов работы. Всплывающие окна диалога, вызываемые командами меню, также содержат привычные для пользователя элементы управления, такие как текстовые поля ввода информации, открывающиеся списки и кнопки различных типов. Большинство программ для Windows поддерживают работу и с клавиатурой, и с мышью.

Стандартизация графического интерфейса имеет очень большое значение для пользователя, потому что одинаковый интерфейс экономит его время и упрощает изучение новых приложений. С точки зрения программиста, стандартный вид интерфейса обеспечивается использованием подпрограмм, встроенных непосредственно в Windows, что также приводит к существенной экономии времени при написании новых программ.

5.1.2. Многозадачность. Многозадачные операционные системы позволяют пользователю одновременно работать с несколькими приложениями или несколькими копиями одного приложения. Например, пользователь может открыть систему программирования и набирать в текстовом редакторе код своей программы, одновременно слушая приятную музыку. В это же время программа explorer.exe может заниматься поиском необходимого файла по всему дисковому пространству компьютера.

Многозадачность осуществляется в Windows при помощи процессов и потоков. Любое приложение Windows после запуска реализуется как процесс (process). Грубо говоря, процесс можно представить как совокупность программного кода и выделенных для его исполнения системных ресурсов. При инициализации процесса система всегда создает первичный (основной) поток (thread), который исполняет код программы, манипулируя данными в адресном пространстве процесса.

Из основного потока при необходимости могут быть запущены один или несколько вторичных потоков, которые выполняются одновременно с основным потоком. На самом деле истинный параллелизм возможен только при исполнении программы на многопроцессорной компьютерной системе, когда есть возможность распределить потоки между разными процессорами. В случаях одпроцессорного компьютера или нехватке процессоров для всех потоков операционная система выделяет по очереди некоторый квант времени каждому потоку.

Но каковы соотношения между потоками и окнами? Дело в том, что окно всегда принадлежит некоторому потоку. Поток может быть владельцем одного или нескольких окон, а может быть и вовсе безоконным. Например, если вторичный поток создан для приема данных из COM-порта, то он вполне может обойтись без своего окна.

Наконец, сами окна, принадлежащие потоку, находятся в некоторых иерархических взаимоотношениях. Одно окно является окном верхнего уровня (top-level window) 2 , другие окна называются дочерними (child windows). Дочерние окна подчиняются своим родительским окнам (parent windows). Рисунок 5.1 иллюстрирует эти взаимоотношения.

Соотношение между процессами, потоками, окнами

Если на экране находится несколько окон, то в каждый момент времени только одно из них может быть активным. Активное окно отличается более ярким фоном на строке заголовка, в то время как пассивные окна имеют более тусклый фон заголовка. Говорят, что активное окно имеет фокус ввода. Это означает, что любая информация, вводимая пользователем при помощи клавиатуры или мыши, будет перенаправляться операционной системой именно данному окну.

5.1.3. Управление памятью. Память – это один из важнейших разделяемых ресурсов в операционной системе. Если одновременно запущены несколько приложений, то они должны разделять память, не выходя за пределы выделенного адресного пространства. Так как одни программы запускаются, а другие завершаются, то память фрагментируется. Система должна уметь объединять свободное пространство памяти, перемещая блоки кода и данных.

Система Windows обеспечивает достаточно большую гибкость в управлении памятью. Если объем памяти меньше объема исполняемого файла, то система может загружать исполняемый файл по частям, удаляя из памяти отработавшие фрагменты. Если пользователь запустил несколько копий, которые также называют отдельными экземплярами приложения, то система размещает в памяти только одну копию исполняемого кода, которая используется этими экземплярами совместно. Программы, запущенные в Windows, могут использовать также функции из других файлов, которые называют библиотеками динамической компоновки – DLL (dynamic link libraries). Система Windows поддерживает механизм связи программ во время их работы с функциями из DLL. Даже сама операционная система Windows, по существу, является набором динамически подключаемых библиотек.

Механизмы управления памятью непрерывно совершенствуются по мере развития Windows.

5.1.4. Независимость от аппаратных средств. Еще одним преимуществом Windows является независимость от используемой платформы. У программ, написанных для Windows, нет прямого доступа к аппаратной части таких устройств отображения информации, как, например, экран и принтер. Вместо этого они вызывают функции графической подсистемы, называемой графическим интерфейсом устройства (Graphic Device Interface, GDI).

Функции GDI реализуют основные графические команды при помощи обращения к программным драйверам соотвествующих аппаратных устройств. Одна и та же команда (например, LineTo – нарисовать линию) может иметь различную реализацию в разных драйверах. Эта реализация скрыта от программиста, использующего Windows API, что упрощает разработку приложений.

Таким образом, приложения, написанные с использованием Windows API, будут работать с любым типом дисплея и любым типом принтера, для которых имеется в наличии драйвер Windows. То же самое относится и к устройствам ввода данных – клавиатуре, манипулятору «мышь» и др. Такая независимость Windows от аппаратных средств достигается благодаря указанию требований, которым должна удовлетворять аппаратура, в совокупности с SDK (Software Development Kit – набор разработки программ) и/или DDK (Driver Development Kit – набор разработки драйверов устройств). Разработчики нового оборудования поставляют его вместе с программными драйверами, которые обязаны удовлетворять этим требованиям.

5.1.5. Вызов функций. Windows API поддерживает вызовы свыше двух тысяч функций, которые можно использовать в приложениях. Все основные функции Windows объявлены в заголовочных файлах. Главным заголовочным файлом является windows.h. В этом файле содержится множество ссылок на другие заголовочные файлы.

Вызовы функций Windows API в программе осуществляются аналогично вызовам библиотечных функций систем программирования. Для языков программирования С и С++ основное различие заключается в том, что компоновщик связывает код библиотечных функций с кодом программы на этапе компоновки (статическое связывание), в то время как для функций Windows это связывание откладывается и осуществляется только на этапе выполнения программы (динамическое связывание). Библиотеки динамической компоновки (DLL) содержатся в файлах с расширением .dll. Большая часть этих библиотек расположена в подкаталоге SYSTEM каталога установки Windows.

Операционная система позволяет компилятору использовать библиотеки импорта, поставляемые в составе используемой среды программирования. Библиотеки импорта содержат имена всех функций из динамически подключаемых библиотек, а также ссылки на них. Используя эту информацию, компоновщик размещает в исполняемом файле таблицу, по которой в процессе загрузки программы настраиваются адреса вызываемых функций Windows API.

5.1.6. Объектно-ориентированное программирование. Хотя формально операционная система Windows не является объектно-ориентированной системой, тем не менее, в ней реализована именно объектно-ориентированная идеология. Это наиболее очевидно для базового объекта, с которым имеют дело и операционная система, и программист, и пользователь приложения, - то есть для окна.

Как уже говорилось ранее, окно выглядит как прямоугольная область на экране. Окно получает информацию от клавиатуры или мыши пользователя и выводит графическую информацию на экран.

Пользователь рассматривает окна в качестве объектов и непосредственно взаимодействует с ними, перемещая их по экрану, выбирая команды меню, нажимая различные кнопки и передвигая бегунок на полосах прокрутки.

Можно привести и другие примеры объектов в Windows, к которым относятся, например, многочисленные графические объекты, используемые для рисования, такие как перья, кисти, шрифты, палитря и многие другие объекты.

Независимо от своего типа, любой объект в Windows идентифицируется своим дескриптором, или описателем. Оба эти названия являются переводом английского термина handle. Дескриптор – это своего рода ссылка на объект. Все взаимоотношения программного кода с объектом осуществляются только через его дескриптор. Система Windows тщательно скрывает свои внутренние секреты и не допускает прямогог доступа к внутренним структурам объекта.

Продолжаем тему об удобстве пользования Windows и сегодня рассмотрим некоторые способы запуска программ, о которых вы могли не знать.

Надеюсь, что материал будет полезен как новичку, так и бывалым пользователям. А перед тем, как мы начнём, обращаю внимание, что один из способов мы уже ранее рассматривали в цикле статей по контекстному меню :

А теперь поехали про другие варианты! И начнём с самого простого.

💾Присвоение горячих клавиш приложениям

Для самых часто используемых приложений можно задавать свои горячие клавиши.

Жмём ПКМ (правую кнопку мыши) по ярлыку программы и выбираем свойства . В поле быстрый вызов начинаем нажимать нужные горячие клавиши, после чего жмём ОК .

💾Закрепление программ на панели зада

Этот способ корректно работает на любых современных версиях ОС (операционных систем) без ограничений.

Способы закрепления программ:

  • Задержать ЛКМ (левая кнопка мыши) ярлык и перенести его не отпуская на панель задач, пока не появится надпись Закрепить в панель задач .
  • Если нужная программа уже открыта, нажмите на панели задач по ней ПКМ (правой кнопкой мыши) и выберите Закрепить на панели задач .

Способы запуска:

  • Клик ЛКМ по программе на панели задач откроет нужное приложение
  • Горячие клавиши по порядковым номерам откроют до 9 программ по порядку, т.е. слева направо жмём Windows + цифру 1-9 на клавиатуре.

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

💾Закрепление программ на панели быстрого запуска

Тот же метод, что и выше, но вместо захламления панели задач будем захламлять панель плиток - быстрого запуска. Способ только для Windows 8 и выше.

Вариант первый - нажать ПКМ по ярлыку и выбрать там Закрепить на начальном экране .

Второй вариант - найти приложение в поиске и выбрать справа Закрепить на начальном экране .

Можно так же закрепить и уже открытое приложение с панели задач, нажав по нему ПКМ и выбрав Закрепить на начальном экране .

Теперь при нажатии кнопки Windows ил выбора ЛКМ кнопки Windows, в сетке будут ваши добавленные приложения, готовые к запуску.

💾Выполнить и поиск

Эти способы уж не то, чтобы быстрые, но иногда позволят сократить время на запуск приложений.

Способ через поиск в Windows так же поможет быстро открыть некоторые приложения или утилиты. Для Windows 7 жмём по пуску и в поиске пишем запрос, для Windows 10 можно нажать сочетание Windows + Q и продолжать вбивать запрос.

💾Панель инструментов

На десерт поведаю о самом на мой взгляд правильном подходе - использовании панели инструментов. В Windows 10 можно не только добавлять менюшки в контекстное меню, но и использовать альтернативу.

Жмём ПКМ (правая кнопка мыши) по панели задач -> Панели -> Создать панель инструментов. -> указываем путь к папке, где будет храниться наше меню. Это может быть любая произвольная папка в любом удобном вам месте .

Имя папки будет отображаться на панели задач как панель инструментов Имя папки будет отображаться на панели задач как панель инструментов

Половина дела сделано. Теперь остаётся закинуть в эту папку нужные вам ярлыки программ/утилит и готово, примерно такой может быть результат:

Будем исходить из того, что (как это показано на иллюстрации к вопросу) в программе Проводник (explorer.exe) на некотором файле некто нажал Enter или выполнил двойной щелчок.

Программа Проводник в соответствии с настройками в системном реестре опознаёт этот файл как executable (то есть программу) и начинает её запуск. Для этого Проводник собирает следующие данные:

  • путь к файлу с программой
  • параметры командной строки (в данном случае это будет пустая строка, но это частный случай)
  • путь к папке, которую в этот момент обозревает проводник
  • все переменные окружения (посмотреть из можно в расширенных «Свойствах» компьютера или по команде SET из Командной строки)

И всё это хозяйство Проводник отдаёт операционной системе, вызывая функцию CreateProcess. Эта функция проживает в библиотеке kernel32.dll (эта библиотека уже подгружена в память, так как Проводник её активно использует)

Функция CreateProcess делает следующее:

  • выделяет оперативную память для переменных окружения и копирует их туда
  • выделяет память для процесса и вычитывает с диска файл с программой перекладывая его содержимое в память. В выделенном блоке памяти различают сегмент для данных и сегмент для кода программы. Код программы — это выраженные цифрами инструкции для процессора, которые будут потом выполняться
  • создаёт основную нить (thread) этого процесса

Эта нить, встраивается в очередь процессов. Операционная система как виртуозная арфистка перебирает все существующие нити по очереди в соответствии с их приоритетом, и каждой даёт возможность работать немного времени, потом процессорные ресурсы отдаются другому процессу и т.д. То есть в этой арфе постоянно появляются новые струны, и потом вынимаются, прямо на ходу.

Получив свою порцию процессорного времени нить заставляет процессор перейти к определённому месту в памяти в сегменте кода и некоторое время процессор выполняет инструкции, которые там записаны. Так работает любая программа.

Что конкретно делает эта программа это уже её собственное дело. Она может создавать свои нити для распараллеливания работы, открывать и читать другие файлы, выделять себе еще немного оперативной памяти для данных, запускать другие программы, создавать графический (оконный) контекст, что-то рисовать в нём, слушать клавиатуру и другие устройства, и так далее. В конце концов программа сворачивает все свои потоки включая основной, и тогда все занятые этой программой ресурсы (память, открытые файлы, окна…) высвобождаются и возвращаются операционной системой.

Читайте также: