.net 自定义快捷菜单

windows.script host object model

 

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using System.Linq;
using IWshRuntimeLibrary;
using System.IO;


namespace SunTeckIPC
{
    [RunInstaller(true)]
    public partial class MyInstall : Installer
    {
        public MyInstall()
        {
            InitializeComponent();
        }

        public override void Install(System.Collections.IDictionary stateSaver)
        {
            try
            {
                base.Install(stateSaver);

                System.Reflection.Assembly Asm = System.Reflection.Assembly.GetExecutingAssembly();//获取当前程序集信息
                System.IO.FileInfo fileinfo = new System.IO.FileInfo(Asm.Location);//获取当前程序集位置
                string dbpath = fileinfo.DirectoryName;//获取文件夹名称
                string name = fileinfo.Name;//获取文件名称
                //去掉后缀
                if (name.ToUpper().Contains(".EXE"))
                {
                    name = name.ToUpper().Replace(".EXE", "");
                }
                //在桌面创建快捷方式
                WshShell shell = new WshShell();
                IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(
                    Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + "//" + name + ".lnk"
                    );

                shortcut.TargetPath = Asm.Location;//目标
                shortcut.WorkingDirectory = dbpath;//工作文件夹
                shortcut.WindowStyle = 1;//窗体的样式:1为默认,2为最大化,3为最小化
                shortcut.Description = "Viss 视频监控";//快捷方式的描述
                shortcut.IconLocation = Asm.Location;//图标
                shortcut.Save();

                //在程序菜单中创建文件夹
                if (!Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.Programs) + "//Viss//" + name))
                {
                    Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.Programs) + "//Viss//" + name);
                }
                //在程序菜单中创建快捷方式
                IWshShortcut shortcut2 = (IWshShortcut)shell.CreateShortcut(
                    Environment.GetFolderPath(Environment.SpecialFolder.Programs) + "//Viss//" + name + "//" + name + ".lnk"
                    );

                shortcut2.TargetPath = Asm.Location;
                shortcut2.WorkingDirectory = dbpath;
                shortcut2.WindowStyle = 1;
                shortcut2.Description = "Viss" + "-" + name;
                shortcut2.IconLocation = Asm.Location;
                shortcut2.Save();


            }
            catch (Exception e)
            {
                System.Windows.Forms.MessageBox.Show(e.Message);
            }

        }

        public override void Uninstall(System.Collections.IDictionary savedState)
        {
            base.Uninstall(savedState);
            //卸载程序的时候将两个快捷方式删除
            System.Reflection.Assembly Asm = System.Reflection.Assembly.GetExecutingAssembly();
            System.IO.FileInfo fileinfo = new System.IO.FileInfo(Asm.Location);
            string name = fileinfo.Name;

            if (name.ToUpper().Contains(".EXE"))
            {
                name = name.ToUpper().Replace(".EXE", "");
            }

            if (Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.Programs) + "//Viss//" + name))
            {
                if (Directory.GetDirectories(Environment.GetFolderPath(Environment.SpecialFolder.Programs) + "//Viss//").Length > 1)
                {
                    Directory.Delete(Environment.GetFolderPath(Environment.SpecialFolder.Programs) + "//Viss//" + name + "//", true);
                }
                else
                {
                    Directory.Delete(Environment.GetFolderPath(Environment.SpecialFolder.Programs) + "//Viss//", true);
                }
            }
            if (System.IO.File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + "//" + name + ".lnk"))
            {

                System.IO.File.Delete(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + "//" + name + ".lnk");

            }
        }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值