手把手教你制作vs2005装饰

    如果把.net开发人员比作是行走江湖的侠客,那vs就好比是侠客手中的剑,比武的时候讲究的的一寸长,一寸强,那我们应该如何改善我们的武器呢?铁匠铺的铁匠老软早就为我们做好了准备,他在我们的武器上装了很多环,打了很多洞,我们完全可以在这些环或洞上镶嵌珠宝,让这把剑更加靓丽,也可以在这把剑上装上暗器,增加武器杀伤力,如果您自身还练就了九阳神功,配上这把倚天剑,包你很快就知道无敌真寂寞的滋味。哈哈。不胡诌了,言归正传,本文通过详细的操作步骤讲述一个装饰vs2005的故事。
    让我们打开vs2005,选择创建项目,在接下来的向导中选择项目模板:其他项目类型-扩展性-visual studio外接程序,然后给我们的大钻石起个漂亮的名字:RecentProjectCleaner。忘记说了,这个外接程序要完成的任务是在菜单的工具栏创建一个子菜单,点击这个子菜单可以呼出我们的暗器,这个暗器用来清除vs2005起始页中的最近项目列表、 第一个步骤的图示如下:
         
  然后,一路next,直到出现选择外接程序选项对话框的时候,选择如下:
      
点击下一步,完成向导后,项目模板会自动生成的文件列表如下:
CommandBar.resx      -----------    这个是命令栏的资源文件
Connect.cs                 -----------    是一个继承了IDTExtensibility2, IDTCommandTarget的类,是addins的实现类
RecentProjectCleaner.AddIn   -------------------这个是addins进行xcopy部署的配置文件,部署的时候拷贝到C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Addins
RecentProjectCleaner - For Testing.AddIn    -------------这个是调试运行的的测试类,在调试的时候,这个文件会自动拷贝到C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Addins位置
首先介绍最主要的文件Connect.cs  ,这个类包含如下的实现方法
OnConnection  - 处理外接程序加载的时候触发
OnDisconnection  -  在处理外接程序卸载的时候触发
OnAddInsUpdate   -  外接程序出现更新的时候触发
OnStartupComplete   -  外接程序加载结束时候触发
OnBeginShutdown    -   开始卸载的时候触发
QueryStatus      -    查询状态
Exec    -   执行命令
本例中,我们实现的目的是:在工具菜单上创建一个新的子菜单,点击这个菜单,能够清除启动页最近项目列表,所以我们需要做的是
1) 在外接程序加载的时候,创建菜单
2) 点击菜单,执行删除最近列表项的命令
3) 卸载的时候,删除新增菜单项
所以添加工具子菜单的代码要添加到OnConnection  中如下:
OnConnection
执行命令的操作添加到Exec中,
Exec
在程序卸载的时候,卸载菜单项
OnDisconnection
这样一个非常简单的vs2005addins就制作成功了,接下来您就可以将该程序部署到你的倚天剑上了,部署方法超级简单,和vs03不同的是,05支持xcopy部署,您可以将RecentProjectCleaner.AddIn和生成的RecentProjectCleaner.dll拷贝到C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Addins,就完成了addins的部署,值得说下的是RecentProjectCleaner.AddIn,这个文件描述了vs2005应该如何认识新增的伙计,它里面定义了宿主应用程序的信息(名称,版本)和addins的信息(所在程序集,类名,加载方式),如果您想在部署后让addins立即被启用,将LoadBehavior设置为1,还有不知道是我本地项目模板的问题还是其他原因,默认创建的RecentProjectCleaner.AddIn里面的Assembly多了.dll。也就是RecentProjectCleaner.dll,这样的dll显然不存在,去掉一个.dll,就可以了
看下部署后的效果吧:重新启动vs2005,点击工具,菜单就多了一项:RecentProjectCleaner,如图

点击外接程序管理器,可以多了一项RecentProjectCleaner
在菜单中点击RecentProjectCleaner,选择清除,重启vs2005,最近列表项就清除了。

这里是源程序,这里只是一个的介绍,大家可以下载下去扩展,很好玩
/Files/jillzhang/RecentProjectCleaner.rar
 
作者:jillzhang
出处:http://jillzhang.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2007-09-26 09:43 Robin Zhang 阅读(4391) 评论(23)  编辑 收藏 网摘 所属分类: .net framework

  回复  引用  查看    
#1楼2007-09-26 10:25 | 徐少侠      
o

好玩

  回复  引用    
#2楼2007-09-26 10:27 | 输送带[未注册用户]
厉害!!
比较详细!!
学习le !

  回复  引用  查看    
#3楼2007-09-26 10:39 | 1-2-3      
不错。俺也在学小儿科的排序算法呢。
  回复  引用    
#4楼2007-09-26 10:44 | A.Z*[未注册用户]
其它都没有关系,我要eclipse的手感,界面布局功能。
  回复  引用  查看    
#5楼[楼主]2007-09-26 11:42 | jillzhang      
@1-2-3
温故而知新呀,:)

  回复  引用  查看    
#6楼[楼主]2007-09-26 11:50 | jillzhang      
@A.Z*
这个恐怕还需要更深入的学习才有可能实现

  回复  引用  查看    
#7楼2007-09-26 12:47 | 妖居      
就是自己做一个vs的addin。可以扩充的东西很多啊,看看envdte或者envdte80这两个namespace,发现几乎可以为我们定制所有vs的东西。
  回复  引用  查看    
#8楼2007-09-26 13:01 | 随风流月      
Visual Studio 2008 SDK 当前已经支持 VS Shell 隔离模式的制作,现在可以动手打造自己的 IDE 了!
  回复  引用  查看    
#9楼2007-09-26 13:15 | Jeffers Yuan      
不错!
  回复  引用  查看    
#10楼[楼主]2007-09-26 13:19 | jillzhang      
@随风流月
这个是一个非常好的消息,@A.Z* 的想法可以在这个里面得以实现啦

  回复  引用    
#11楼2007-09-26 15:06 | bluebirdzx[未注册用户]
不错呀,有思想,我用了好几年了一直没有研究过。工具栏里的设置都没看过。听说 vs中要加入即时通信,是否真的
  回复  引用  查看    
#12楼[楼主]2007-09-26 15:13 | jillzhang      
@bluebirdzx
这个咱们自己都可以加的

  回复  引用  查看    
#13楼2007-09-26 16:54 | Vokobo      
好详细。
  回复  引用  查看    
#14楼2007-09-26 18:37 | 无意      
九阳神功,配上这把倚天剑 ?

要配屠龙刀

九阴要倚天剑

  回复  引用  查看    
#15楼2007-09-27 09:19 | 周银辉      
good
  回复  引用    
#16楼2007-09-27 17:29 | 紫枫[未注册用户]
那叫阴阳结合 要是再配上屠龙刀 岂不是太过于阳了 呵呵
  回复  引用  查看    
#17楼[楼主]2007-09-27 18:14 | jillzhang      
@紫枫
:)

  回复  引用  查看    
#18楼2007-09-27 20:09 | 韩现龙      
赞,学习下先!
  回复  引用    
#19楼2007-09-27 21:52 | w[未注册用户]
学习了!!!
  回复  引用    
#20楼2007-12-14 23:30 | jc1929[未注册用户]
把你那个e呼通去掉吧,太烦人了
  回复  引用    
#21楼2008-04-14 16:40 | 孙雾[未注册用户]
今天按着例子写了一次,收获很大.
不仅仅看了下写AddIn,还看了博主的一些图像处理方面的文章,写得真不错,希望博主再接再励,到时能写出一本技术含量很高的图书.

  回复  引用  查看    
#22楼[楼主]2008-04-14 17:00 | jillzhang      
@孙雾
多谢你的支持

  回复  引用  查看    
#23楼2009-04-06 14:29 | eastcowboy      
我的RecentProjectCleaner怎么成灰色 不可用啊



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 905710





相关文章:

相关链接: