Как запустить исполняемый файл из пользовательской полосы и фрагмента в стартовом меню Windows Media Center?
Я добавил пользовательскую ленту и плитку в Windows Media Center. Однако, когда я выбираю плитку, мое выбранное приложение (notepad.exe
) не запускается, и я получаю следующую ошибку:
Программа [name] перестала отвечать, и вы будете возвращается в Windows Media Center.
Что мне нужно изменить в моем XML, чтобы notepad.exe
был запущен, а не отображал это сообщение об ошибке?
Дополнительная информация
Используя приведенные примеры в этом сообщении в блоге и this page в Центре Windows Dev, я создал следующий XML файл (называемый dummy.xml
):
<application title="appTitle" id="{81E3517C-A5F3-4afa-9E37-81BF9A6A99FE}">
<entrypoint id="{760A3CF3-6675-444b-AA31-B2A3F94AD9A3}"
addin="Microsoft.MediaCenter.Hosting.WebAddIn,Microsoft.MediaCenter"
title="entrypointTitle"
description="Description"
run="notepad.exe">
<category category="MyCompany\MyApplication1"/>
</entrypoint>
</application>
и следующий файл реестра (называемый dummy.reg
):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Media Center\Start Menu\Applications\{81E3517C-A5F3-4afa-9E37-81BF9A6A99FE}]
"Title"="appTitle"
"Category"="MyCompany\\MyApplication1"
"OnStartMenu"="True"
"TimeStamp"=dword:0c7e59de
Затем я устанавливаю их, используя следующие команды:
%windir%\ehome\registermceapp.exe dummy.xml
regedit.exe /s dummy.reg
Когда я запускаю Windows Media Center, я вижу полосу и фрагмент, но когда я выбираю плитку, я получаю сообщение об ошибке:
![The [tile name] program has stopped responding and you will be returned to Windows Media Center.]()
Согласно эта страница, элемент entrypoint
имеет атрибут run
, который:
Строка, указывающая полный или относительный путь к исполняемому файлу на локальном компьютере.
Что мне нужно сделать по-другому с файлом XML и ключом реестра, чтобы запустить notepad.exe
, а не отображаемое сообщение об ошибке?
Ответы
Ответ 1
Задача оказывается двоякой:
- Неправильное чтение документации
-
RegisterMceApp.exe
сообщает "Успех", даже если XML неверен.
В эта страница, которая документирует элемент entrypoint
, она вполне четко заявляет:
<entrypoint
id="entry point GUID"
<!-- This element can have only one of the following attributes:
addin="AssemblyInfo"
url="URL of entry-point page"
run="path of EXE file"
-->
Мой XML файл использовал как addin
, так и run
, поэтому он не работал.
Исправленная версия, приведенная ниже (в сочетании с исходным файлом реестра) приведет к запуску notepad.exe
при выборе плит в среде Windows Media Center:
<application title="appTitle" id="{81E3517C-A5F3-4afa-9E37-81BF9A6A99FE}">
<entrypoint id="{760A3CF3-6675-444b-AA31-B2A3F94AD9A3}"
run="notepad.exe"
title="entrypointTitle"
description="Description">
<category category="MyCompany\MyApplication1"/>
</entrypoint>
</application>