Metrolog / ITG.MetrControl.2.3

.msi пакет для распространения в рамках домена продукта АИС Метроконтроль версии 2.3
1 stars 0 forks source link

При закреплении на панели задач (Windows 7+) невозможно выбрать, какое приложение запускать #28

Open sergey-s-betke opened 11 years ago

sergey-s-betke commented 11 years ago

Да и не только. Имеет смысл и закреплять ярлыки непосредственно на панели задач через групповую политику сразу.

sergey-s-betke commented 11 years ago

Пока эту проблему не решим, имеет смысл добавить свойство System.AppUserModel.PreventPinning к ялрыкам.

sergey-s-betke commented 11 years ago

Видимо, придётся для разных приложений использовать разные свойства System.AppUserModel.ID... Тогда - для каждого приложения будет свой ярлык в панели задач. Но тогда встанет вопрос с указанием описанного свойства в ProgID...

sergey-s-betke commented 11 years ago

Кстати, для ярлыков справки следует использовать свойство System.AppUserModel.StartPinOption, чтобы отключить автоматическую привязку к стартовому экрану. Значение "2" - принудительная привязка, "1" - запрет автоматической привязки при установке.

http://msdn.microsoft.com/en-us/library/windows/desktop/jj553605

sergey-s-betke commented 11 years ago

Да и System.AppUserModel.ExcludeFromShowInNewInstall для справки тоже имеет смысл устанавливать.

Нет необходимости. Достаточно для host процесса в реестре добавить необходимые записи:

HKEY_CLASSES_ROOT
   Applications
      Example.exe
         NoStartPage

в качестве процессе - процесс для .chm файлов.

sergey-s-betke commented 11 years ago

Свойство System.Software.ProductName, интересно, есть смысл устанавливать и для чего?

Видимо - нет смысла устанавливать, MSI решит эту проблему самостоятельно (надеюсь).

sergey-s-betke commented 11 years ago

Аналогично System.SoftwareUsed, System.Keywords.

Аналогично предыдущему (надеюсь).

sergey-s-betke commented 11 years ago

Имеет смысл указать Kind.Link или Kind.Program для нашего типа файла. Установил Link:

        <Component
            Id="$(var.AppInternalName).AppReg"
        >
            <RegistryKey
                Root="HKMU"
                Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\KindMap"
            >
                <RegistryValue Name=".$(var.AppFileExt)" Type="string" Value="Link" KeyPath="yes"/>
            </RegistryKey>
        </Component>
sergey-s-betke commented 10 years ago

http://msdn.microsoft.com/en-us/library/windows/desktop/dd378459.aspx - информация о необходимых записях в реестре.

sergey-s-betke commented 10 years ago

Возможно, имеет смысл добавить:

HKEY_CLASSES_ROOT
   Applications
      example.exe
         IsHostApp

Проверим...

Для предотвращения фиксации в панели задач:

HKEY_CLASSES_ROOT
   Applications
      Example.exe
         NoStartPage
sergey-s-betke commented 10 years ago

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

Правильным будет запретить фиксировать процессы самих приложений. Отложим выполнение задачи в итоге...