Могу ли я запустить приложение winRT в качестве заставки?

Есть ли способ сделать мое приложение winRT экранной заставкой в ​​xaml?


person Jeric Paul Calderon    schedule 11.01.2013    source источник


Ответы (2)


Как говорит Джерри, не существует простого способа сделать заставку для приложения Магазина Windows. Однако есть обходное решение, которое может работать для вас в Windows 8, но не в Windows RT. У меня почти работает. Я поделюсь тем, что у меня есть на данный момент.

Заставка — это просто исполняемый файл с расширением .scr, который хранится в C:\Windows\System32. Например, посмотрите на C:\Windows\System32\Bubbles.scr. Решение, которое я имею в виду, состоит в том, чтобы создать заставку .scr, единственной целью которой является запуск вашего приложения Магазина Windows, которое, как вы говорите, будет использовать XAML.

Вы не можете запустить приложение Магазина Windows напрямую из командной строки, поэтому вы создадите приложение для запуска. Взгляните на сообщение в блоге под названием Автоматизация тестирования приложений для Windows 8, Эшвин Нидамангала. В середине статьи найдите раздел Автоматизация активации вашего приложения. Он содержит пример приложения C++, которое может запускать приложения Магазина Windows следующим образом:

C:>Win8AppLaunch.exe Microsoft.BingNews_8wekyb3d8bbwe!AppexNews

Образец средства запуска на этой странице необходимо изменить, но перед этим просто скопируйте код в консольное приложение C++:

введите здесь описание изображения

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

PS C:> Set-ExecutionPolicy AllSigned

Затем запустите этот скрипт PowerShell:

$installedapps = get-AppxPackage
foreach ($app in $installedapps)
{
    foreach ($id in (Get-AppxPackageManifest $app).package.applications.application.id)
    {
        $app.packagefamilyname + "!" + $id
    }
}

Вы можете запустить его в Windows PowerShell ISE. Это довольно гладко. Найдите AppUserModelId вашего приложения, а затем проверьте Win8AppLaunch.exe из командной строки, как показано выше. Это должно запустить ваше приложение Магазина Windows из командной строки.

Затем измените средство запуска C++, чтобы оно жестко закодировало AppUserModelId вашего приложения, а не анализировало его из аргумента командной строки. Я создал суть этого. Важная часть — это строка, в которой я объявляю myApp.

Создайте новый исполняемый файл, переименуйте его в MyScreenSaver.scr и поместите в C:\Windows\System32. После этого он появится в Панели управления настройками заставки. Вы можете предварительно просмотреть заставку там, и она работает. Однако, если вы дождетесь запуска заставки, она ненадолго вызовет окно консоли и никогда не запустится полностью. Я не уверен, почему. Я попытался отключить создание окна консоли, переключив проект на приложение Windows, но это не помогло. Вы можете попробовать это сами, изменив Properties | Configuration | Linker | System | SubSystem на WINDOWS. Это немного сложнее, так как вам также нужно будет изменить точку входа с _tMain на _tWinMain. Свяжитесь со мной через мой блог, если вам нужны подробности. В моем профиле StackOverflow это указано.

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

person Matt Harrington    schedule 11.01.2013

Классная идея. Но нет.

Если вы хотите, чтобы ваше приложение действительно делало что-то для Windows, а не выполнялось как простое приложение, вы пишете приложение-расширение. Вот официальное слово:

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

На данный момент существуют следующие типы приложений-расширений:

Поставщик изображения учетной записи (расширение) Когда пользователи решают изменить изображение своей учетной записи, они могут либо выбрать существующее изображение, либо использовать приложение, чтобы сделать новое. Если ваше приложение может делать снимки, вы можете использовать это расширение, чтобы Windows отобразила ваше приложение на панели управления «Настройки изображения учетной записи». Оттуда пользователи могут выбрать его, чтобы создать новое изображение учетной записи. Дополнительные сведения об этом расширении см. в справочном разделе UserInformation. Вы также можете ознакомиться с образцом имени изображения учетной записи.

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

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

Настройки камеры (расширение) Ваше приложение может предоставить настраиваемый пользовательский интерфейс для выбора параметров камеры и выбора эффектов, когда камера используется для съемки фотографий или видео. Дополнительные сведения об этом расширении см. в разделе Разработка приложений Магазина Windows для устройств для камер.

Средство выбора контактов (расширение). Это расширение позволяет вашему приложению зарегистрироваться для предоставления контактных данных. Ваше приложение включено в список приложений, которые Windows отображает всякий раз, когда пользователю требуется доступ к своим контактам. Дополнительные сведения об этом расширении см. в справочном разделе Windows.ApplicationModel.Contacts.Provider. Вы также можете проверить Управление контактами пользователей.

Активация файла (расширение) Файлы с одинаковым расширением имени файла принадлежат к одному типу. Ваше приложение может использовать существующие, хорошо известные типы файлов, такие как .txt, или создать новый тип файла. Расширение активации файлов позволяет вам определить новый тип файла или зарегистрироваться для обработки типа файла.

Обозреватель игр (расширение) Ваше приложение может быть зарегистрировано в Windows как игра. Для этого вы должны создать файл определения игры (GDF), создать его как двоичный ресурс в своем приложении и объявить этот ресурс в манифесте пакета.

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

Активация протокола (расширение) Ваше приложение может использовать для связи существующие протоколы, например mailto, или создать собственный протокол. Расширение активации протокола позволяет определить собственный протокол или зарегистрироваться для работы с существующим протоколом.

SSL/сертификаты (расширение) Цифровые сертификаты используются для аутентификации одного объекта в другом. Например, сертификаты часто используются для аутентификации пользователя в веб-службах через SSL. Это расширение позволяет вам установить цифровой сертификат с вашим приложением.

ссылка: http://msdn.microsoft.com/en-us/library/windows/apps/hh464906.aspx

К сожалению, к скринсейверам отношения не имеет. Техническая причина, по которой в настоящее время вы не можете написать приложение для Windows 8, функционирующее как экранная заставка, заключается в том, что приложения для Windows 8 принципиально привязаны к запуску в среде выполнения WinRT. Эта оболочка не выходит за пределы меню «Пуск» в текущей версии Windows. Так вот, нет возможности выполнить снаружи - вроде как заставку. Скринсейверы по-прежнему строятся «по старинке».

person Jerry Nixon    schedule 11.01.2013
comment
Поскольку вы из MSFT, позвольте мне попытаться обосновать заставки. Заставки могут быть неактуальны сейчас, когда ЭЛТ мертвы, но есть как минимум две причины, по которым они все еще имеют ценность. 1) Это был бы действительно простой способ для разработчика поэкспериментировать со сборкой для Windows и публикацией в Магазине Windows. 2) В приложении есть утилита, которая визуально запускается, когда компьютер простаивает. Например, фоторамка, часы, агрегация потоков социальных сетей. Приложения, которые могут работать, когда компьютер простаивает, позволяют нам использовать наши машины для пассивного потребления. - person Tristan; 24.07.2013