Интеграция приложений windows 10

Microsoft постепенно отказывается от интеграции приложения Paint 3D в Windows 10

За прошедшие годы Microsoft внесла в Windows 10 несколько изменений, включая добавление и удаление различных функций. В Windows 10 Fall Creators Update Microsoft представила папку с 3D-объектами и обеспечила глубокую интеграцию между классическими Paint и Paint 3D.

Приложение Paint 3D и другие функции 3D бесполезны для большинства пользователей, но их нельзя полностью удалить из операционной системы. В Проводнике папка «3D-объекты» была помещена вместе с ярлыками для рабочего стола, изображений, документов и других важных папок.

Точно так же в контекстном меню есть опция «Редактировать с помощью Paint 3D», и большинство из вас, вероятно, ее не использует. Удаление или отключение этих функций не даст вам возможности отказаться от принудительной интеграции Paint 3D, и нет других способов уменьшить беспорядок, если вы не знакомы с редактором реестра.

В Windows 10 версии 21H2 Microsoft, похоже, отказывается от интеграции приложения Paint 3D в операционную систему. После обновления «Редактировать с помощью Paint 3D» будет удалено как из контекстного меню, так и из классического приложения Paint.

Как вы, возможно, знаете, классический Paint (paint.exe) в настоящее время поставляется с собственной опцией «Редактировать с помощью Paint 3D», которая позволяет открывать изображение в Paint 3D для дополнительной настройки.

До сих пор было невозможно удалить опцию Paint 3D из классической Paint, даже если вы попытались отредактировать реестр вручную. С помощью редактора реестра можно изменять только записи контекстного меню. Это изменится с обновлением Sun Valley, поскольку запись Paint 3D в приложении Paint будет удалена Microsoft во всех системах.

Приложение Paint 3D останется доступным для загрузки из Microsoft Store. Если вас интересует Paint 3D, вы все равно можете установить его и продолжать использовать.

Как создать собственную сборку Windows 10 с помощью инструмента MSMG ToolKit

Для создания собственной модифицированной сборки Windows доступно два основных способа. Вы можете либо начать с нуля и изменять непосредственно ISO-образ Windows 10, либо вносить изменения в уже установленную систему Windows 10. Утилита MSMG ToolKit относится к первой категории, поскольку она позволяет изменять исходный образ, а не текущую систему.

Примечание: рекомендуется создать резервную копию вашего системного раздела перед запуском программы. Для создания собственного образа нужно будет использовать ISO-образ Windows 10 или DVD-диск Windows 10 в качестве источника.

Создание сборки Windows 10

Распакуйте архив 7z с программой (вам может понадобиться 7-Zip) и запустите скрипт. Программа отобразит пользовательское соглашение, которое нужно принять для продолжения работы. В документе сообщается, что автор программы не несет ответственности за возможный ущерб или другие проблемы. Приложение представляет собой скрипт командной строки.

После принятия соглашения MSGM Toolkit запустит несколько проверок, например, для определения версии операционной системы и для анализа всех доступных инструментов.

Затем откроется главный экран. В первую очередь, нужно выбрать источник или папку. Вы можете скопировать папку установочного образа Windows 10 или DVD-диска в подпапку DVD основной папки MSGM Toolkit.

Выберите пункт [1] Select Source, [1] Select Source from Source DVD Folder, индекс 1 + Enter.

Примечание: в ряде случаев (в зависимости от дистрибутива Windows и способа его загрузки) вам понадобиться конвертировать файл Install.esd в Install.wim, чтобы можно было приступить к изменениям сборки.

После выбора источника вы можете начать процесс изменения сборки. Для этого потребуется три основные операции: (3, integrate) интеграция, (4, remove) удаление и (5, customize) настройка

Интеграция

Действие “Интеграция” позволяет добавлять языковые пакеты, драйвера, функции, обновления и отдельные возможности в образ Windows 10:

  • Language Packs — данная опция позволяет добавить языковые пакеты в установочный диск Windows 10
  • Drivers — данная опция позволяет добавить отдельные драйвера в установочный диск Windows 10, например, для устройств, которые не поддерживаются Windows 10 по умолчанию.
  • Windows Features — данная опция позволяет добавить отдельные компоненты Windows (Microsoft Games, Microsoft .NET Framework 3.5, Windows Sidebar и т.д.). Опция позволяет восстановить функции, которые были ранее удалены.
  • Updates — интеграция обновлений Windows, чтобы они устанавливались во время инсталляции Windows, а не после нее.
  • Windows Custom Features — добавление дополнительных системных файлов, патча UxTheme или альтернативной среды восстановления Windows.

Удаление

Вы можете использовать операцию удаления (Remove), чтобы избавиться от ненужных компонентов Windows 10:

  • Remove default Metro apps — опция выводит список всех приложений и позволяет удалять отдельные приложений Windows 10 за исключением Магазина приложений Windows, а также онлайн приложения.
  • Remove Default Metro Apps Associations — позволяет удалять файловые ассоциации универсальных приложений Metro. Они не будут запускаться при открытии соответствующих файлов.
  • Remove Windows Components — опция позволяет удалять отдельные компоненты Windows (Cortana, службы телеметрии, “Домашняя группа”, родительский контроль, Xbox и др.). Доступна функция расширенного удаления для того, чтобы избавиться от Microsoft Edge, Adobe Flash, Защитника Windows Defender и системы восстановления Windows.
  • Remove Windows Components using Package List
Читайте также:  Касперский секьюрити центр для линукс

Настройка

Операция Customize позволяет импортировать и экспортировать приложения Metro в XML файлы.

После завершения

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

Примечание: Чтобы уменьшить размер образа, после всех изменений выполните: [6] Apply — [6.1] Apply Changes to Source Images — [6.3] Re-Build Source Images

После этого вы можете использовать меню Target для создания нового установочного носителя, например, для создания собственного ISO-образа Windows 10, записать ISO-образ на USB-носитель или DVD-диск.

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

Заключение

MSMG Toolkit — это удобный инструмент для создания пользовательских установок Windows 10 из образа или исходной папки Windows.

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

Microsoft принесла приложения Android на Windows 10. Как это работает

На ПК можно работать с мобильными приложениями, добавлять панель задач и в меню «Пуск»

Компания Microsoft сделала сегодня интересный анонс на мероприятии Unpacked корейской Samsung.

Microsoft рассказала о новых возможностях приложения Your Phone (Ваш телефон) для операционной системы Windows 10.

Как обещают разработчики, улучшенная интеграция с Windows 10 открывает доступ к работе с мобильными приложениями прямо на ПК:

Теперь можно отправлять сообщения, управлять уведомлениями, синхронизировать фото, а также совершать и принимать звонки с компьютера. Стало возможным добавлять свои любимые мобильные приложения на панель задач или в меню «Пуск».

До конца года у пользователей появится возможность запускать несколько приложений на одном экране компьютера с Windows 10. Более того, рабочая экосистема Samsung и Microsoft теперь взаимосвязана: Samsung Notes синхронизируется с Microsoft OneNote и Outlook, а напоминания – с Microsoft Outlook, To Do и Teams.

Поддержка запуска «многочисленных» приложений Android в Windows 10 появится в ноябре. Тестирование новых функций уже началось. Microsoft объявила о выпуске превью-сборки Windows 10 Insider Preview Build 20185 для участников программы тестирования Windows Insiders.

Для запуска приложений Android потребуется смартфон Android 9.0 Pie с приложением Link to Windows (Связь с Windows). Список поддерживаемых устройств на данный момент:

  • Samsung Galaxy Note 9
  • Samsung Galaxy S9
  • Samsung Galaxy S9+
  • Samsung Galaxy Note10
  • Samsung Galaxy Note10+
  • Samsung Galaxy Note10 Lite
  • Samsung Galaxy Fold
  • Samsung Galaxy S10
  • Samsung Galaxy S10+
  • Samsung Galaxy S10 Lite
  • Samsung Galaxy S10e
  • Samsung Galaxy A8s
  • Samsung Galaxy A30s
  • Samsung Galaxy A31
  • Samsung Galaxy A40
  • Samsung Galaxy A41
  • Samsung Galaxy A50
  • Samsung Galaxy A50s
  • Samsung Galaxy A51
  • Samsung Galaxy A60
  • Samsung Galaxy A70
  • Samsung Galaxy A70s
  • Samsung Galaxy A71
  • Samsung Galaxy A71 5G
  • Samsung Galaxy A80
  • Samsung Galaxy A90s
  • Samsung Galaxy A90 5G
  • Samsung Galaxy S20
  • Samsung Galaxy S20+
  • Samsung Galaxy S20 Ultra
  • Samsung Galaxy Fold
  • Samsung Galaxy XCover Pro
  • Samsung Galaxy Z Flip

Интеграция приложений — Связывание и интеграция приложений в Windows 10

Продукты и технологии:

Windows 10, Windows Runtime, объявление протокола, Universal Windows Platform
В статье рассматриваются:

  • взаимодействие приложений;
  • связывание и интеграция приложений в Windows 10;
  • более эффективный обмен данными между приложениями.

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

Один из способов решить эту проблему — просто включить всю функциональность в одно приложение. По сути, этот подход часто встречается в приложениях настольного класса. Однако это рискованный путь. Очень быстро вы окажетесь с «раздутым» приложением, где большинство использует только какое-то подмножество функциональности. В этом случае разработчики должны управлять как сложностью UI, так и обновлениями для всего приложения. Еще хуже, что по мере дальнейшего усложнения UI пользователи, особенно мобильных устройств, начнут больше склоняться к другим вариантам. Фактически современная тенденция направлена на разложение приложений на индивидуальные части, чтобы пользователи могли устанавливать или использовать только то, что им нужно в дороге, не волнуясь о лишних мегабайтах.

Второй способ решения обозначенной проблемы — задействовать облако как средство коммуникации между приложениями. Это прекрасно работает, пока данных не становится больше определенного объема или пока у вас нет пользователей с ограниченными соединениями. Проблема начинает проявляться с жалоб наподобие «Я обновил свой статус вот здесь, а он не показывается в другом приложении!». Вдобавок я всегда нахожу несколько странным, что разработчики приложений должны прибегать к услугам облака для взаимодействия двух приложений на одном и том устройстве. Должен быть способ получше.

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

Читайте также:  Обои планшет для windows

Подготовка приложения к созданию глубинных ссылок

Начнем с примера складского приложения, которое может показывать подробные сведения о товарах. Также добавим в смесь приложение продаж, способное отображать устойчивые тенденции о том, что продается и где, а также куда и какие товары нужно подвезти. Приложение продаж имеет UI для анализа данных «вглубь», позволяющий пользователям видеть подробные сведения об индивидуальных товарах. Конечно, большая часть подробных сведений о товарах находится в складском приложении. Рис. 1 демонстрирует сценарий, о котором я говорю.


Рис. 1. Приложение продаж имеет глубинные ссылки на складское приложение

Sales App Приложение продаж
Show Product Details Отображение подробных сведений о товарах
InventoryApp Складское приложение

В этом сценарии вы должны прежде всего сделать складское приложение доступным для запуска. Для этого вы добавляете объявление протокола в манифест пакета складского приложения (package.appxmanifest). Объявление протокола — это способ для складского приложения сообщить миру о том, что его можно запускать из других приложений. На рис. 2 показано, как выглядит это объявление. Заметьте, что я использую для протокола имя com.contoso.showproduct. Это хорошее соглашение по именованию для пользовательских протоколов, так как Contoso владеет доменом contoso.com. Вероятность того, что разработчик какого-то другого приложения случайно использует ту же пользовательскую схему, исключается.


Рис. 2. Объявление протокола

Вот XML, генерируемый объявлением протокола:

Затем нужно добавить некоторый код активации, чтобы складское приложение могло соответственно отреагировать, когда оно запускается по этому новому протоколу. Этот код должен находиться в классе Application (App.xaml.cs) складского приложения, потому что именно этому классу направляются все операции активации. Вы переопределяете метод OnActivated класса Application, чтобы реагировать на активацию протокола. На

Рис. 3. Обработка глубинной связи

Вы проверяете вид входящего IActivatedEventArgs, чтобы понять, является ли это активацией протокола. Если да, вы приводите типы входящих аргументов к ProtocolActivatedEventArgs и отправляете входящий URI на страницу ProductDetails. Эта страница настраивается на разбор URI вроде com.contoso.showproduct:Details?ProductId=3748937 и отображает подробные сведения о соответствующем товаре. К этому моменту складское приложение готово к обработке входящих глубинных ссылок (deep links).

Последний шаг в этом сценарии — разрешить в приложении продаж поддержку глубинных ссылок на складское приложение. Это самая простая часть всего процесса. Приложение продаж использует метод Launcher.LaunchUriAsync для глубинной ссылки на складское приложение. Вот как мог бы выглядеть такой код:

Обмен данными между приложениями

Существуют сценарии, где приложениям нужно обмениваться данными, но при этом не обязательно перенаправлять пользователя в другое приложение. Скажем, мое приложение продаж может отображать объемы продаж по регионам и даже детализировать информацию до уровня конкретных магазинов. Выводя эти данные по товарам, было бы полезно знать, сколько штук товара доступно в каком-либо магазине или регионе. Лучший источник этих данных — складское приложение, но в этом случае запуск складского приложения нарушил бы пользовательскую среду (UX) исходного приложения. Для такого рода сценариев как раз и предназначено расширение AppService (bit.ly/1JfcVkx).

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

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

Давайте рассмотрим, как складское приложение создает и публикует сервис, который оно намерено предоставлять. Сервисы приложений в основном специализируются на фоновых задачах. Поэтому, чтобы добавить сервис приложения, вы добавляете проект Windows Runtime Component (Universal Windows) в решение Visual Studio, содержащее складское приложение. Проекты Windows Runtime Component вы найдете в окне Add New Project в Visual Studio под Visual C# | Windows | Universal. Шаблоны этого проекта для других языков находятся по аналогичным путям.

В новый проект Windows Runtime Component добавьте новый класс, InventoryServiceTask. Сервисы приложений специализируются на фоновых задачах потому, что, как было показано ранее, этот код должен выполняться в фоне, не проявляясь в UI. Чтобы сообщить ОС, что InventoryServiceTask — фоновая задача, вы должны просто реализовать интерфейс IBackgroundTask. Метод Run интерфейса IBackgroundTask будет точкой входа для сервиса складского приложения. В нем вы указываете отсрочку (deferral), давая знать ОС, что эту задачу следует сохранять, пока она нужна клиенту (приложению продаж). Кроме того, вы подключаете обработчик специфичного для сервиса приложения события RequestReceived. Этот обработчик будет вызываться всякий раз, когда клиент отправляет запрос на обработку этому сервису. На рис. 4 показано, как выглядит код, инициализирующий сервис складского приложения.

Рис. 4. Инициализация сервиса складского приложения в методе Run

Теперь посмотрим на реализацию обработчика RequestReceived. И вновь вы указываете отсрочку, как только поступает запрос. Вы удаляете эту отсрочку по завершении обработки входящего запроса. Клиент и сервис приложения взаимодействуют, передавая структуру данных ValueSet. Каждая ValueSet — это словарь «ключ-значение», который может содержать простые типы вроде целых чисел, чисел с плавающей точкой, строк и байтовых массивов.

На рис. 5 показано, как сервис складского приложения обрабатывает входящие запросы. Он анализирует входящее сообщение на наличие команды, а затем отвечает, передавая правильный результат. В данном случае вы видите команду GetProductUnitCountForRegion, на которую сервис реагирует передачей количества штук товара и времени последнего обновления данных. Сервис мог бы прекрасно получать эти данные от веб-сервиса или просто извлекать их из автономного кеша. Прелесть в том, что клиенту (приложению продаж) не нужно знать, откуда берутся эти данные.

Читайте также:  Linux and windows programms

Рис. 5. Прием запросов к складскому приложению

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

Прежде чем кто-либо сможет вызывать сервис складского приложения, вы должны опубликовать его и присвоить ему какую-либо конечную точку. Сначала добавьте ссылку на новый компонент Windows Runtime в проект складского приложения. Затем добавьте объявление сервиса в проекте этого приложения, как показано на рис. 6. В поле Entry point указывается полное имя класса InventoryServiceTask, а в поле Name — имя, которое вы будете использовать для идентификации конечной точки этого сервиса приложения. Для обращения к сервису клиенты будут использовать то же имя.


Рис. 6. Объявление сервиса приложения

Вот XML, генерируемый объявлением сервиса приложения:

Другая часть информации, необходимая клиенту для взаимодействия с сервисом складского приложения, — имя семейства пакетов складского приложения. Самый простой способ получить это значение — вызвать метод Windows.ApplicationModel.Package.Current.Id.FamilyName в складском приложении. Обычно я просто вывожу это значение в окно отладки и копирую его оттуда.

Вызов сервиса приложения

Теперь, когда сервис складского приложения готов к работе, его можно вызывать из приложения продаж. Чтобы вызвать этот сервис, клиент может задействовать AppServiceConnection API. Экземпляр класса AppServiceConnection требует имени конечной точки сервиса приложения и имени семейства пакетов, где находится сервис. Считайте эти два значения адресом сервиса приложения.

На рис. 7 приведен код, используемый приложением продаж для соединения с сервисом складского приложения. Заметьте, что свойству AppServiceConnection.AppServiceName было задано имя конечной точки, объявленное в манифесте пакета складского приложения. Кроме того, Package Family Name складского приложения было включено в свойство AppServiceConnection.PackageFamilyName. После этого вызовите метод AppServiceConnection.OpenAsync, чтобы открыть соединение. OpenAsync API возвращает код состояния по завершении этой операции, с помощью которого определяется, успешно ли установлено соединение.

Рис. 7. Вызов сервиса складского приложения

После соединения клиент посылает сервису приложения набор значений в ValueSet, используя метод AppServiceConnection.SendMessageAsync. Заметьте, что свойство Command в ValueSet устанавливается в GetProductUnitCountForRegion. Это команда, распознаваемая сервисом. SendMessageAsync возвращает ответ, содержащий ValueSet, который был отправлен сервисом. Разбираем значения UnitCount и LastUpdated и выводим их. И это все, что требуется для взаимодействия с сервисом приложения. Вы помещаете AppServiceConnection в блок using. Это приводит к вызову метода Dispose в AppServiceConnection, как только блок using заканчивается. Вызов Dispose — способ для клиента сообщить, что он завершил взаимодействие с сервисом приложения и теперь соединение можно закрыть.

Постойте-ка, а использует ли Microsoft эти API?

Конечно, Microsoft использует эти API. Большинство приложений Microsoft, поставляемых вместе с Windows 10, на самом деле являются приложения Universal Windows Platform (UWP). К ним относятся такие программы, как Photos, Camera, Mail, Calendar, Groove Music и Store. Разработчики, которые писали эти приложения, использовали многие из рассмотренных здесь API для реализации интеграционных сценариев. Например, вы никогда не обращали внимания на ссылку Get music in Store в приложении Groove Music? Когда вы касаетесь или щелкаете эту ссылку, Groove Music использует Launcher.LaunchUriAsync API, чтобы перенаправить вас в приложение Store.

Другой яркий пример — приложение Settings. Когда вы заходите в Accounts | Your account и пытаетесь использовать камеру, чтобы сделать снимок для профиля, вызывается Launcher.LaunchUriForResultsAsync API, который запускает программу Camera. LaunchUriForResultsAsync — это специализированная форма LaunchUriAsync, более подробно описанная по ссылке aka.ms/launchforresults.

Большое количество программ также использует сервисы приложений для передачи информации в Cortana в реальном времени. Например, когда приложение пытается установить голосовые команды, на которые должна реагировать Cortana, на самом деле вызывается сервис приложения, предоставляемый Cortana.

Заключение

Windows 10 поставляется с мощными средствами, помогающими во взаимодействии между приложениями, выполняемыми на одном устройстве. Эти средства не накладывают никаких ограничений на то, что приложения могут передавать друг другу или какими данными они могут обмениваться. Так и задумано. Цель — позволить приложениям определять собственные контракты друг с другом и расширять функциональность других приложений. Это также дает возможность разработчикам разбивать свои приложения на меньшие части, которые легче сопровождать, обновлять и использовать. Это очень важно, потому что пользователи все чаще располагают несколькими устройствами и используют то устройство, которое, по их мнению, лучше подходит для конкретной задачи. Кроме того, все эти API универсальны, а значит, они могут работать на настольных компьютерах, лэптопах, планшетах, смартфонах, а вскоре и на Xbox, Surface Hub и HoloLens.

Арун Сингх (Arun Singh) — старший менеджер программ в группе Universal Windows Platform. Следите за его заметками в Twitter (@aruntalkstech) или читайте его блог на aruntalkstech.com.

Выражаю благодарность за рецензирование статью экспертам Гектору Барбере (Hector Barbera), Джиллу Бендеру (Jill Bender), Говарду Капуштайну (Howard Kapustein), Абдуле Хади Шейху (Abdul Hadi Sheikh), Стефану Уику (Stefan Wick) и Джону Уисуоллу (Jon Wiswall).

Оцените статью