怎么给WINFORM应用程序的快捷方式定义快捷键,是否能在程序上实现?想达到的效果就是输入快捷键,能启动这个应用程序。就像安装后在桌面上的快捷方式上设置快捷键那样。希望在程序安装以后就自带这个快捷启动键,怎么实现?

解决方案 »

  1.   

     public static void CreateShortcut(string directory, string shortcutName, string targetPath,
               string description = null, string iconLocation = null)
            {
                if (!System.IO.Directory.Exists(directory))
                {
                    System.IO.Directory.CreateDirectory(directory);
                }            string shortcutPath = Path.Combine(directory, string.Format("{0}.lnk", shortcutName));
                WshShell shell = new WshShell();
                IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutPath);//创建快捷方式对象
                shortcut.TargetPath = targetPath;//指定目标路径
                shortcut.WorkingDirectory = Path.GetDirectoryName(targetPath);//设置起始位置
                shortcut.WindowStyle = 1;//设置运行方式,默认为常规窗口
                shortcut.Description = description;//设置备注
                shortcut.Hotkey = "Ctrl+Alt+S";//热键
                shortcut.IconLocation = string.IsNullOrWhiteSpace(iconLocation) ? targetPath : iconLocation;//设置图标路径
                shortcut.Save();//保存快捷方式
            }        /// <summary>
            /// 创建桌面快捷方式
            /// </summary>
            /// <param name="shortcutName">快捷方式名称</param>
            /// <param name="targetPath">目标路径</param>
            /// <param name="description">描述</param>
            /// <param name="iconLocation">图标路径,格式为"可执行文件或DLL路径, 图标编号"</param>
            /// <res></res>
            public static void CreateShortcutOnDesktop(string shortcutName, string targetPath,
                string description = null, string iconLocation = null)
            {
                string desktop = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);//获取桌面文件夹路径
                CreateShortcut(desktop, shortcutName, targetPath, description, iconLocation);
            } 
     添加com引用Windows Script Host Object Model
      

  2.   

    你用什么工具打包的?一般的打包工具本来就可以快捷键的,比如Inno Setup设置下HotKey 就可以了,安装完成看快捷方式的属性,有就成功了
      

  3.   

    赞同,有些打包工具本身就支持,如果没有,以上代码一样可以用,          WshShell shell = new WshShell();
                IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(你的快捷方式路径);//创建快捷方式对象
                shortcut.Hotkey = "Ctrl+Alt+T";//热键
                shortcut.Save();//保存快捷方式
      

  4.   


    就.NET自带的那个。里面没有对HOTKEY的设置
      

  5.   


    就.NET自带的那个。里面没有对HOTKEY的设置这段放在哪里?自带的那个是没法写入程序的。
      

  6.   

    VS自带的好像不能设置快捷键,都没怎么用了,VS2017默认安装都不带了,还要手动安装这个打包插件,你只想用这个加快捷键的话,可以用创建自定义操作