Как зарегистрировать сочетание клавиш для ссылки на приложение во время установки?

Как я могу зарегистрировать сочетание клавиш, например Ctrl + Alt + V, в качестве сочетания клавиш для моего приложения во время установки?

При установке приложения:

  1. Вы можете создать ярлык на рабочем столе.
  2. Вы можете щелкнуть правой кнопкой мыши ярлык и выбрать отображение свойств.
  3. В окнах свойств на вкладке Shortcut отображается Shortcut key : none.
  4. Если вы нажмете на текстовое поле, вы можете вручную зарегистрировать ярлык для своего приложения, нажав нужные сочетания клавиш.

Мое требование - зарегистрировать сочетание клавиш для приложения во время установки, чтобы конечному пользователю не приходилось делать это вручную на каждом клиенте, устанавливающем приложение. Затем, когда пользователь использует эту комбинацию клавиш, приложение открывается.

Я использую проект установки и развертывания Visual Studio 2010.

Сочетание клавиш для приложения


person Vijay Thorat    schedule 25.02.2016    source источник
comment
Недостаточно информации, чтобы дать исчерпывающий ответ на вопрос. Как программа установки создает ярлык? У вас есть доступ к этому коду? Если так, то это просто. Вызовите IShellLink :: SetHotkey . Более общую информацию о создании ярлыков можно найти здесь, если вам потребуется написать код для создания ярлыка самостоятельно.   -  person Cody Gray    schedule 25.02.2016


Ответы (1)


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

Основываясь на комментариях, поскольку вы используете проект установки и развертывания Visual Studio для создания установки, вы можете создать _ 1_ и переопределите его OnAfterInstall метод и создайте ярлык, используя приведенный ниже код.

Не забудьте добавить ссылку на Windows Script Host Object Model, используя окно добавления ссылки в библиотеках типов com.

Также при добавлении настраиваемого действия в проект установки установите CustomActionData в /path="[TARGETDIR]\", таким образом вы сможете получить путь, выбранный пользователем для установки приложения с помощью Context.Parameters["path"].

Вот код:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;

namespace CustomActions
{
    [RunInstaller(true)]
    public partial class Installer1 : Installer
    {
        public Installer1()
        {
            InitializeComponent();
        }
        protected override void OnAfterInstall(System.Collections.IDictionary savedState)
        {
            base.OnAfterInstall(savedState);

            IWshRuntimeLibrary.WshShell WshShell = new IWshRuntimeLibrary.WshShell();
            object strDesktop = (object)"Desktop";
            string shortcutAddress = (string)WshShell.SpecialFolders.Item(ref strDesktop)
                                     + @"\Shortcut to YourApplication.lnk";
            IWshRuntimeLibrary.IWshShortcut oShellLink =  (IWshRuntimeLibrary.IWshShortcut)WshShell.CreateShortcut(shortcutAddress);
            oShellLink.TargetPath = System.IO.Path.Combine(Context.Parameters["path"], "YourApplication.exe");
            oShellLink.Hotkey = "Ctrl+Alt+V";
            oShellLink.Description = "Shortcut To YourApplication";
            oShellLink.Save();
        }

    }
}

Загрузить пример

Вы можете скачать рабочий пример из следующего репозитория:

person Reza Aghaei    schedule 25.02.2016
comment
Когда пользователь устанавливает приложение в этот раз, он выбирает путь установки. я хочу этот путь, так как это возможно? - person Vijay Thorat; 28.02.2016
comment
Это зависит от технологии, которую вы используете для создания настройки. Например, когда вы создаете установку с использованием шаблона проекта установки и развертывания Visual Studio, вы можете создать _ 1_ и переопределите его методы и выполните задачу там. - person Reza Aghaei; 28.02.2016
comment
Какую технологию вы используете для установки? - person Reza Aghaei; 28.02.2016
comment
версия Visual Studio 2010 и c # - person Vijay Thorat; 29.02.2016
comment
Привет, Реза, наконец, я завершаю задачу, используя настраиваемое действие, и добавляю класс установщика в класс установщика, включая метод установки, вместо этого добавил мой собственный код и настроил исправление пути установки клиента, и этот путь назначен как наш целевой путь. ....... спасибо большое, реза ....... - person Vijay Thorat; 29.02.2016