Подтвердить что ты не робот

Как запустить исполняемый файл из пользовательской полосы и фрагмента в стартовом меню 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, а не отображаемое сообщение об ошибке?

4b9b3361

Ответ 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>