必威注册电子书籍教程中心网文荟萃客户留言繁體中文
设为首页
加入收藏
联系必威注册
您当前的位置:92动力网 -> 教程中心 -> 编程经验 -> JAVA DotNet -> 教程内容 退出登录 用户管理
栏目导航
· Visual Basic· Delphi
· Visual C++· C++ Builder
· JAVA DotNet· 其他相关
热门教程
· 如何在Visual Basic...
· 使用Visual Basic操...
· 使用VB6.0设计Activ...
· VB动态调用外部函数...
· 建立一个程序员自己...
· 如何编写高质量的VB...
· [图文] 为更新到Visual Bas...
· 再谈在VB中调用VC++...
· 用VB语言编程实现JP...
· 用DTS实现SQL数据库...
相关教程
· VB.Net创建不规则窗...
· 把握VB.NET中的流(S...
· 把握VB.NET中的流(S...
· 把握VB.NET中的流(S...
· VB.NET中对象的克隆...
· [图文] VB.NET访问COM+
· Working with MS Ac...
· VB.net中HOOK的应用...
· VB.net中HOOK的应用...
· Henry手记-VB.net ...

VB.NET制作外接程序的一个示例
作者:佚名聽聽来源:本站整理聽聽发布时间:2005-12-29 18:00:25聽聽发布人:admin

减小字体 增大字体


VB.NET制作外接程序的一个示例

摘要

聽聽聽聽聽聽 写这片文章的初衷源于我的一次“偷懒”的经历。有一次做了一些软件包,大概有60多个不同的文件,每次都要向前面添加简单的注释,比如本软件的用途、版本等等,很不方便。能不能有一个简单的方法,点一个Button,会自动的加上注释呢?

聽聽聽聽聽聽 途径有很多,今天介绍一下.NET制作一个小的外接程序(Add-in),来实现上述要求的一个例子。

VB.NET中开发外接程序

聽聽聽聽聽聽 有时候,开发一个与开发环境交互的外接程序是一件特别有意义的事情,可以用简单的代码换来很实用的效果。VB.NET开发这类Add-in很简单,在VS.NETIDE环境中,提供了开发Add-in的向导,稍微修改一下就可以得到自己想要的效果。

聽聽聽聽聽聽 下面看一个具体的例子:

开发实例

聽聽聽聽聽聽 首先,打开VS.NET的开发环境,新建一个项目。浏览一下左边的项目类型,看到有一个扩展性项目,点击右边看到有一个VS.NET外接程序:

聽聽聽聽聽聽 我们命名这个项目为CopyRightAddin,确定。看到向导的画面,点击下一步:

我们选择第二项,用VB来创建外接程序:

聽聽聽聽聽聽

聽聽聽聽聽聽 第二步告诉我们向选择哪些程序作为我们的“主机”,其实就是加载我们开发外接程序的一个环境,两个都选上。下一步:

聽聽聽聽聽聽

很简单,输入外接程序的名称和说明之后,下一步看到:

选择第一项,默认加载这个Add-in,下一步:

聽聽聽聽聽聽

这一步问要不要外接程序有关于对话框。选择是的候,你可以自定义对话框上面的关于信息,继续:

聽聽聽聽聽聽

最后这个画面显示了一些你的选项,确认正确候完成。有错误,你可以返回修改。到这里,这个向导就结束了,我们的框架也就有了,我们就可以添加代码了。

聽聽聽聽聽聽 这个时候看一下解决方案,系统默认把Setup项目都添加进去了:

这个时候,按F5,就可以看到效果了:系统会打开一个新的VS.NET开发环境,我们开一下工具菜单,会多出一个CopyRightAddin菜单项,点击什么效果也没有,因为我们还没有写代码。

聽聽聽聽聽聽聽聽聽聽聽聽聽

聽聽聽聽聽聽聽聽聽聽聽聽聽

代码:

聽聽聽聽聽聽 为了模块化,我们创建一个SubCreateCopyRightFileForAllVbfiles。用于添加注释:

'给方案中的每一个.vb文件加入注释

聽聽聽 Private Sub CreateCopyRightFileForAllVbfiles()

聽聽聽聽聽聽聽 Dim strRemark As String

聽聽聽聽聽聽聽 strRemark = " 这是一个注释,有Montaque添加 & ControlChars.CrLf

聽聽聽聽聽聽聽 Try

聽聽聽聽聽聽聽聽聽聽聽 Dim projects As Array = applicationObject.ActiveSolutionProjects() 开发环境下打开的所有项目

聽聽聽聽聽聽聽聽聽聽聽 Dim theProject As EnvDTE.Project聽聽聽聽 定一个Project,指示当前Project

聽聽聽聽聽聽聽聽聽聽聽 If (projects.Length > 0) Then聽聽聽聽聽 如过当前没有打开project,Pass什么也不错。

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 theProject = projects.GetValue(0)聽聽聽聽 获得当前Project

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Dim p As ProjectItem

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 For Each p In theProject.ProjectItems 对改project下面的所有.vb文件添加注释

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 If p.Name.Substring(p.Name.Length - 3, 3) = ".vb" Then

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Dim theWindow As EnvDTE.Window

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 theWindow = p.Open(Constants.vsViewKindCode)

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Dim objTextDoc As TextDocument = theWindow.Document.Object("TextDocument")

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Dim objEditPoint As EditPoint = objTextDoc.StartPoint.CreateEditPoint

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 objEditPoint.Insert(strRemark)

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Dim strFileName As String = p.FileNames(0)

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 p.SaveAs(strFileName)

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 End If

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Next

聽聽聽聽聽聽聽聽聽聽聽 End If

聽聽聽聽聽聽聽 Catch ee As Exception

聽聽聽聽聽聽聽聽聽聽聽 MsgBox(ee.ToString)

聽聽聽聽聽聽聽 End Try

聽聽聽 End Sub

当用户调用了我们写的外接程序的时候,会有一个Exec过程,根据传递给它的参数来执行不同的过程,我们加入自己的过程:

Public Sub Exec(ByVal cmdName As String, ByVal executeOption As vsCommandExecOption, ByRef varIn As Object, ByRef varOut As Object, ByRef handled As Boolean) Implements IDTCommandTarget.Exec

聽聽聽聽聽聽聽 handled = False

聽聽聽聽聽聽聽 If (executeOption = vsCommandExecOption.vsCommandExecOptionDoDefault) Then

聽聽聽聽聽聽聽聽聽聽聽 If cmdName = "CopyRightAddin.Connect.CopyRightAddin" Then

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 CreateCopyRightFileForAllVbfiles()

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 handled = True

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Exit Sub

聽聽聽聽聽聽聽聽聽 聽聽End If

聽聽聽聽聽聽聽 End If

聽聽聽 End Sub

Ok,到现在为止,运行F5,就可以看到实际效果了。是不是很简单?

补充

1、发布的时候,我们可以制作一个Setup项目,安装一下就可以了。

2、编译后,项目所在的目录下会生成一个注册表文件。外接程序出错的时候,会提示你是不是要移除这个外接程序,选择是会导致工具菜单中不出现这个外接程序,点击这个注册表文件就可以恢复了。

3、这个只是一个简单的例子,只供初学者学习。


[] [返回上一页] [打 印] [收 藏]
∷相关教程评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图 - 管理登录
Copyright 2019 必威注册. All Rights Reserved .
浙ICP备05047688号