首页 > 代码库 > winform自动添加同级目录下可执行文件的快捷方式到右键菜单中
winform自动添加同级目录下可执行文件的快捷方式到右键菜单中
1 /// <summary> 2 /// 追加同目录下可执行文件到右键菜单中 3 /// 在form的Load事件中调用:new clsContextMenuStrip(this.FindForm()); 4 /// </summary> 5 public class clsContextMenuStrip 6 { 7 //窗体 8 System.Windows.Forms.Form form; 9 //右键菜单10 System.Windows.Forms.ContextMenuStrip menu;11 //当前可执行文件目录12 string path = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;13 /// <summary>14 /// 追加同目录下可执行文件到右键菜单中15 /// 调用方法:new clsContextMenuStrip(this.FindForm());16 /// </summary>17 public clsContextMenuStrip(Form f)18 {19 form = f;20 menu = f.Controls.Owner.ContextMenuStrip;21 if (menu == null)22 {23 menu = new ContextMenuStrip();24 form.Controls.Owner.ContextMenuStrip = menu;25 }26 Init();27 }28 /// <summary>29 /// 获取当前程序目录下的所有exe,追加到右键菜单中30 /// </summary>31 private void Init()32 {33 var currExePath = Process.GetCurrentProcess().MainModule.FileName;34 var files = Directory.GetFileSystemEntries(path, "*.exe", SearchOption.AllDirectories);35 foreach (var filePath in files)36 {37 //排除本身38 if (currExePath.Equals(filePath, StringComparison.CurrentCultureIgnoreCase))39 continue;40 string name = Path.GetFileNameWithoutExtension(filePath);41 //获取exe的图标42 Image image = Image.FromHbitmap(Icon.ExtractAssociatedIcon(filePath).ToBitmap().GetHbitmap());43 ToolStripMenuItem item = new ToolStripMenuItem();44 item.Text = name;45 item.Image = image;46 item.ToolTipText = filePath;47 item.Click += new EventHandler(item_Click);48 menu.Items.Add(item);49 }50 }51 //点击时打开程序52 void item_Click(object sender, EventArgs e)53 {54 ToolStripMenuItem item = sender as ToolStripMenuItem;55 Process.Start(item.ToolTipText);56 }57 }
当写的小程序多了,每次找起来也麻烦,就想到写这样一个功能,然后在需要的程序中都加入这样的代码,这样打开任意一个程序时也可以方便的调用其他程序。
当目录下的可执行文件过多时,程序初始化时间会很长,这个可以根据自己需要修改一下
winform自动添加同级目录下可执行文件的快捷方式到右键菜单中
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。