装饰VS2005 项目上如何添加右键菜单

VS Code 内置 Git 集成:零命令行的可视化版本控制工作流 Git 是分布式版本控制系统的核心基础设施,其工作区、暂存区与仓库三层模型构成了代码变更管理的基础原理;VS Code 通过深度嵌入式集成,将 git status、git add、git commit 等底层操作实时映射为图形化状态提示与一键交互,实现命令行能力与编辑器上下文的无缝对齐;这种集成不替代 Git 本身,而是显著降低认知负荷与操作路径长度,提升协作效率与新人上手速度;广泛适用于前端/全栈开发、团队标准化落地及 CI/CD 流水线协同等工程场景;本文聚焦 VS Code 原生 Git 工具链的设 阅读详情
 在上一篇文章手把手教你制作 vs2005装饰中,主要介绍了如何创建和部署addins,在有了这个基础的前提条件下,我们看下如何在解决方案资源管理器中如何 添加右键菜单和如何自定义输出。

  仍然是在OnConnection中添加创建右键菜单的代码:

以下是引用片段:
 CommandBarEvents menuItemHandler;
  string addinName = "垃圾清除";
  _applicationObject = (DTE2)application;
  _addInInstance = (AddIn)addInInst;
  //获得项目的命令行菜单
  CommandBars cmdBars = (CommandBars)(_applicationObject.DTE.CommandBars);
  CommandBar vsBarProject = cmdBars["Project"];
   CommandBarControl menuItem = vsBarProject.Controls.Add(MsoControlType.msoControlButton, 1, "", 2, true);
   menuItem.Tag = addinName;
   menuItem.Caption = addinName;
   menuItem.TooltipText = addinNam
  menuItemHandler = (CommandBarEvents)_applicationObject.DTE.Events.get_CommandBarEvents(menuItem);
   menuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(MenuItem_Click);

  上面一段代码,作用是在项目的右键菜单上增加一个名称为垃圾清除的菜单,CommandBars和CommandBar是用于管理命令栏的接口,通过

以下是引用片段:
 menuItemHandler = (CommandBarEvents)_applicationObject.DTE.Events.get_CommandBarEvents(menuItem);
  menuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(MenuItem_Click);

  来添加子菜单的点击事件。

以下是引用片段:
   private void MenuItem_Click(object commandBarControl, ref bool handled, ref bool cancelDefault)
   {
   try
   {
   Project prj = (Project)((Array)_applicationObject.ActiveSolutionProjects).GetValue(0);
   SpilthCleaner.Executor e = new SpilthCleaner.Executor();
   string res = e.Clear(System.IO.Path.GetDirectoryName(prj.FullName), prj.FullName);
   OutputWindowTest(_applicationObject, res);
   }
   catch (Exception ex)
   {
   OutputWindowTest(_applicationObject, ex.Message);
   }
   }

  Click事件中是完成了对项目垃圾文件的清除和清除结果的输出,要想在输出窗口中输出自定义的内容,可以使用下面的方法

以下是引用片段:
   public void OutputWindowTest(DTE2 dte,string outputStr)
   {
   //获得输出窗口
   OutputWindow ow = dte.ToolWindows.OutputWindow;
   //创建属于自己的输出类型
   OutputWindowPane owP;
   owP = ow.OutputWindowPanes.Add("垃圾清理");
   //输出文字内容
   owP.OutputString(outputStr);
   }

  这篇文章参考了dudu老大的 VS 2005 Add-in开发随笔 ,非常老大为我指明了方向。

  vs2005是一个扩展性比较强大的平台,虽然没有eclipse支持插件那样猛,可通过我们的挖掘,还是能在vs2005上安装不少装饰的,我这篇主要写了如何添加右键菜单和输出自定义内容,这个菜单主要完成的工作是清除项目文件夹中没有被项目引用的垃圾数据,下面是源码,大家使用的时候,将相应的.dll和.addins拷贝到C:/Documents and Settings/Administrator/My Documents/Visual Studio 2005/Addins就可以了。

  (_宠壞ィ尔ジ べ寳.貝 ず心誠則靈ず 青蓝色の幻想 ¥菏颜悦色¥ ゛╱祢媇娘.! 落日ヤ的愛 我恨我痴心 ﹎逗祢玩メ -℡鈊随妳动 ◆﹎S`惗.﹖ 「。_箜白" 仟仟靜聽 ╃恕ゃ/|-) 钱无忧 ☆﹏懶騩﹖ 掉头滚蛋оK 盛夏的鱼骨头 沩鉨wo乄菰単 华少 Don't Cry 流浪汉‘;// 夜来香 係莪錯ㄋ? 掉线掉到崩溃 水晶♀小雨 春泥 梦溪 紾悕&緈諨 暂停 ♀鈖豬豬娃娃 li ōл*伈情 上官云顿 老陈 蘑毛蟲∵イ尔 ①亾dé卋楐 (_暰訡泪. こ紫冰な淩 漫步云端 爱,直止成伤 SOSO用户 →斷情戒愛^- 那样/hl好看 Triangel ^懒^ 吥擺ㄗòsら 罙耐,尔│ 梅依寒冬 Ξ溪鹤澜殇Ξ (_灬軟紅狼.o 史建强 ぁ^棻~ №鴳o_瀞℡ !!娇!! 四樓曰記℡ oо╮蘇╭оo 繠dé絕Ю&狼 /gz左眼跳/gz 寂寞de自由 ─━☆飘雪い 釺Ιǐ之ㄆト ≮Níu牛≯ 馨雨清荷 "倁哫﹏ Roukic /yy热情雨﹖ 鱼恋上铒  斯文败类 假期我做主 梦幻的传说 曦/:) 壊壊 -1℃ 黍离 篍兲dè楓 歪歪√¨乖乖 嗯╱┃爱沵↘ ◇ メ﹎螞蟻 譿通腱ぺ站 ~乄丿薍乁丬 ♂+20℃情♂ ┌.`傷訫℡ 忧郁の秤子 ﹎刺殺℡靈魂 坠落萝卜筐 逸扬 活着 昊 雪落★凡尘 ●.╲|.韩蝂 噻豆M滴(女) _|.白緍紗 z.àì彽調 零下八度 ネ柰◣落◥思 欣馨@&蕾蕾 笑着絕忘゛灬 ′.鮎埖惹草 哭着眼睛说拜 ·◆兲倥咹静 雪花 ╰無莪楿ㄨ蠍 /aiq恶魔六哥 壞(_樂尐︶ㄣ 蓝色闪光 "мīSs● 阿郚 萡菏の餹赯Υ 80後青年 梦幻鹰将 讓愛/mg穂緣 ◇詠遠¢颓废 じ☆ve强仔 じ☆ve香煙圝 静听滴雨 !冰封的山
2010年Azure云开发实录:从VS2008到生产上线的完整实践 云计算本质是将基础设施抽象为可编程服务,其核心原理在于资源按需分配、配置与代码分离、环境隔离部署。技术价值体现在降低运维成本、提升弹性伸缩能力与加速应用交付。典型应用场景包括传统ASP.NET系统上云迁移、多环境灰度发布、SQL Azure数据库连接治理等。在早期PaaS实践中,DevFabric本地模拟器和.cscfg/.csdef双配置机制构成了可落地的工程范式,而SQL Azure连接字符串加密与防火墙白名单等细节,则揭示了云时代‘配置即代码’与‘网络即边界’的关键认知。这些基础逻辑至今仍是云原生架构 阅读详情

相关推荐

VC6项目维护指南:寻找与集成Windows XP/2003 Platform SDK

在软件开发和系统维护中,软件开发工具包(SDK)是连接应用程序与操作系统API的关键桥梁,它提供了编译所需的头文件和库文件。其核心原理在于确保编译器、SDK与目标运行环境三者间的ABI(应用程序二进制接口)兼容,包括数据结构内存布局、函数调用约定等严格匹配。对于使用Visual C++ 6.0(VC6)维护遗留项目的工程师而言,这一兼容性尤为重要。特定版本的Platform SDK,如Windows XP SP2和Windows Server 2003 R2(February 2003 Edition)SD

weixin_30715523的博客 431

VSCODE快速添加到鼠标右键菜单

创建一个文件夹1.reg,以reg,任意文件名即可。 查看自己的VSCODE安装路径,我的Code.exe路径为D:\\Program\\Microsoft VS Code\\Code.exe 将下列代码复制粘贴到reg文件中,并且将目录替换为你自己的路径。 执行即可增加入注册表。 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\VSCode] @="Open with Code" "Icon"="D:\\Progr

love_deasung的专栏 737

Ubuntu 18.04 安装 Django 的正确姿势:虚拟环境+Python 3.6+Django 3.2

Django 是 Python 生态中成熟稳定的 Web 开发框架,其核心价值在于通过 ORM 实现数据库逻辑与业务代码解耦,并依托 MTV 架构保障可维护性。在老旧但仍在广泛使用的 Ubuntu 18.04 系统上部署 Django,关键在于规避系统包管理器(apt)带来的版本锁定与路径污染风险,转而采用 Python 内置 venv 创建隔离环境——这既是官方推荐实践,也是生产就绪的最小可靠范式。技术实现需兼顾 locale 校准、清华镜像源加速、ALLOWED_HOSTS 配置及 manage.py

abc20899的专栏 462

手把手教你装饰vs2005-项目上如何添加右键菜单

在上一篇文章手把手教你制作vs2005装饰 中,主要介绍了如何创建和部署addins,在有了这个基础的前提条件下,我们看下如何在解决方案资源管理器中如何添加右键菜单和如何自定义输出。 仍然是在OnConnection中添加创建右键菜单的代码: CommandBarEvents menuItemHandler; stringaddinName="垃圾清除"; _app...

weixin_30892987的博客 155

WTL 8.1 轻量级C++界面库:解压即用,经典Windows工具开发利器

在Windows桌面开发领域,C++开发者常常面临选择困境:Win32 API过于底层,MFC体系臃肿,Qt框架又显得笨重。WTL(Windows Template Library)作为一款基于模板的C++界面库,通过编译期代码生成机制,将窗口过程、消息映射和控件封装为轻量级头文件,无需运行时依赖。它继承自ATL的简洁设计,使生成的可执行文件体积可控制在百KB级别,启动速度接近原生Win32程序。WTL 8.1经典版本允许开发者解压ZIP包后直接配置头文件路径,即可快速构建内部工具、日志查看器、配置编辑器等

cuixie2370的博客 419

vs2005 添加右键菜单 源码

此源码可实现添加右键菜单的功能。 如不明白怎么是实现的,可以参考我博客中的文章。

手把手教你制作vs2005装饰

如果把.net开发人员比作是行走江湖的侠客,那vs就好比是侠客手中的剑,比武的时候讲究的的一寸长,一寸强,那我们应该如何改善我们的武器呢?铁匠铺的铁匠老软早就为我们做好了准备,他在我们的武器上装了很多环,打了很多洞,我们完全可以在这些环或洞上镶嵌珠宝,让这把剑更加靓丽,也可以在这把剑上装上暗器,增加武器杀伤力,如果您自身还练就了九阳神功,配上这把倚天剑,包你很快就知道无敌真寂寞的滋味。哈哈...

weixin_30332705的博客 99

VS2005(cc++)外壳扩展编程之windows右键菜单

VS2005(cc++)外壳扩展编程之windows右键菜单 Windows,SHell Extention,VC++

C++ LNK2005链接错误根源与实战排雷指南

LNK2005是C++多文件项目中典型的链接时符号重复定义错误,源于翻译单元模型与One Definition Rule(ODR)的冲突。其本质并非编译问题,而是全局变量、非inline函数或静态成员在头文件中被多次定义,导致多个.obj文件包含同一符号。该错误高频出现在新手工程化转型、第三方库集成及旧代码重构场景,直接影响可执行文件生成。掌握extern声明、inline函数、constexpr常量、static linkage等核心机制,结合dumpbin符号分析与三步定位法,可系统性规避和修复。本文聚

weixin_34059951的博客 202

在MacBook上直接跑Windows Server 2022:一个开发者的真实踩坑与配置全记录

本文详细记录了在MacBook上原生运行Windows Server 2022的完整流程与优化技巧。通过Boot Camp实现非虚拟机安装,开发者可以充分利用Mac硬件性能,搭建高效的本地开发环境,特别适合需要测试跨平台应用和服务器功能的场景。文章涵盖驱动处理、分区策略、Docker配置等关键步骤,为技术极客提供实用指南。

weixin_42620913的博客 245

ResNet理论基础与具体实现(详细教程)

论文地址:Deep Residual Learning for Image Recognition ​ Identity Mappings in Deep Residual Networks pytroch源码地址:resnet 0x00 前言 ResNet是2015年就提出的网络结构,中文名字叫作深度残差网络,主要作用是图像分类。现在在图像分割、目标检测等领域都有很...

coordinate的博客 8329

转载:jillzhang的文章索引 包括(Nhiberate,WCF,WPF,项目管理等内容)

在园子里面开博已经2年多了,期间写的这些随笔有好有坏,但至少都见证了自己成长的历程。现在将它们总结起来,作出这个索引页面,页面中,对于自认为比较满意的系列和文章,我都用醒目的图标进行了标记,没什么水准的,以后有时间,会进行温故和更新。 .index_Container img { border: 0px; } .index_Container a ...

weixin_30865427的博客 231

太速科技-基于DSP TMS320C6678+FPGA XC7V690T的6U VPX信号处理卡

当多块盘并行工作时,存储阵列读写带宽成指数增长,2块盘则≥4GB/s,4块盘则≥8GB/s,以此类推。存储阵列的存储容量由单盘配置决定,目前单块NVME存储盘存储容量可选择512GB、1TB、2TB、4TB、8TB、16TB。硬盘管理通过文件系统,FPGA的PCIeX4与 6U VPX主板互联,操作系统直接映射管理硬盘,也可以通过前面板QSFP+ 光纤导出给其他服务器设备。本方案优势就是集中的进行采集,存储,计算一体化,降低硬件成本、功耗,减小设备体积、重量。信号处理,无线电通信领域。

Orihard_的博客 678

Bebas Neue:为什么这款免费开源字体能成为设计师的首选标题字体?

如果你正在寻找一款既能提升设计质感又完全免费的开源字体,Bebas Neue字体正是你需要的专业级标题字体解决方案。这款专门为大尺寸显示而生的无衬线字体,以其简洁有力的几何造型和出色的可读性,成为全球设计师必备的开源字体资源。采用SIL Open Font License v1.1开源许可证,让你在个人和商业项目中都能无忧使用。 ## 项目核心价值定位 Bebas Neue字体最大的价值在于它

gitblog_00586的博客 59

黑群晖断电后存储池‘已损毁’?别慌,SSH里这几条命令能救急

本文详细解析黑群晖断电后存储池显示‘已损毁’的紧急修复方法。通过SSH命令行工具,提供从诊断到修复的完整流程,包括RAID阵列重新组装、设备重建等关键步骤,帮助用户恢复数据访问。适用于因意外断电导致的存储池异常情况。

weixin_42651748的博客 374

QMT与聚宽策略代码对接实战:Redis信号传递与xtquant交易实现

本文详细介绍了如何将聚宽策略代码与本地QMT终端进行高效对接的实战方案。通过利用Redis Stream构建可靠信号通道,解决了云端信号到本地执行的延迟与丢失问题,并结合xtquant库实现自动化交易执行。文章重点阐述了信号封装、资金映射、异步下单、风控检查及独立资金管理等核心环节,为量化交易者搭建自主可控的实盘系统提供了完整路径。

lilh34434的博客 473

使用.NET从零开始打造短信应用系统之二

jianghuiquan的专栏 6699

RK3588 DDR5 方案

RK3588 DDR5方案支持多种LPDDR5/LPDDR5X内存型号,包括美光、三星、海力士、江波龙和佰维等品牌。文档详细列出了已验证的DDR5内存规格,涵盖2GB-16GB容量范围,提供组织形式、封装类型和测试状态等信息。其中美光型号最全面,支持12GB/16GB大容量方案。部分型号处于测试验证阶段(T/A),需量产进一步确认性能。该方案为RK3588平台开发提供可靠的内存选型参考。

501846585_QQAndroid_java 1080

VC++ 6.0安装与C语言编程实战:从环境搭建到调试排错

集成开发环境(IDE)是程序员编写、调试代码的核心工具,其原理是将代码编辑、编译、链接和调试等功能集成于一体,极大提升了开发效率。在C语言学习与技术传承中,经典的VC++ 6.0 IDE因其贴近编译链本质、有助于理解程序从源码到可执行文件的完整生命周期,而具有独特的教学与工程价值。尤其在处理遗留项目或特定教学场景时,掌握其环境配置与深度兼容性调优,成为一项实用的工程技能。本文聚焦于解决在现代操作系统上部署VC++ 6.0时遇到的经典“应用程序无法正常启动”报错,提供从兼容性设置、补丁应用到虚拟机部署的完整解

weixin_30417487的博客 303

【LDPC-7】LLR量化位宽对LDPC译码性能的影响分析——以最小和译码算法为例进行matlab仿真

最小和译码算法的步骤如下:最后译码结果如果满足或者完成所有迭代次数,则译码算法停止迭代,否则继续进行译码迭代操作。

FPGA/MATLAB学习教程/源码/项目合作开发 1471

【SpringCloud】5、Spring Cloud Gateway网关路由规则

Spring Cloud Gateway 创建 Route 对象时, 使用 RoutePredicateFactory 创建 Predicate 对象,Predicate 对象可以赋值给 Route。

JACKAL 3万+
上一篇: 为什么需要SDO?
下一篇: 面对Facebook 150亿美元的诱惑应当保持冷静
computer_it
博客等级 码龄19年 0粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值