使用ADD-IN技术加强VisualBasic开发环境_VB.net_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

使用ADD-IN技术加强VisualBasic开发环境

作者:黑客防线网安VB教程基地 来源:黑客防线网安VB教程基地 浏览次数:0

本篇关键词:开发环境加强技术
黑客防线网安网讯:----VisualBasic5.0是一个功能强大的集成开发环境,它可以自动检查语法错误,提示编码员语法格式。这些功能都大大提高了编码效率。可是它作为快捷开发工具,它的特点还突出体现在那就是Add-...
----VisualBasic5.0是一个功能强大的集成开发环境它可以自动检查语法错误提示编码员语法格式这些功能都大大提高了编码效率可是它作为快捷开发工具,它的特点还突出体现在那就是Add-In技术上。利用它,我们可以强化和定制VB开发环境:可以自动在所有Project中自动加入一个模块;可以将每个模块中的某个模块替换成另一个模块;可以在程序中查找某段代码,并将它替换掉;理论上讲,我们甚至可以利用该技术做一个代码自动生成器。
  
  ----Add-In技术的实质就是VB编程环境本身做为一个对象模型向用户公开出来,我们可以将一个模块、一段代码做为一个操作对象来修改、优化。下面,我们通过一个实例来介绍Add-In技术的使用。
  
  ----例如,你想将程序中的这样一段代码:
  
  dimnIndexasinteger
  nIndex=cStr(vsFlex.Text)
  替换为:
  dimsIndexasstring
  sIndex=Spread.text
  
  ----包括Word在内的大多数编辑软件都不包括多行查找替换功能,VB5.0的编辑器也不例外,怎么办呢?
  
  ----1、打开VB,在选择Project类型时选择"AddIn"。这样,我们就打开了一个名叫MyAddin的Project。将Project名称改为你希望的名字,如"Test"。
  
  ----2、打开Addin.bas,你发现有一个AddToIni的子程序:
  
  SubAddToINI()
  DimErrCodeAsLong
  ErrCode=WritePrivateProfileString("Add-Ins32","Myaddin.Connect","0","vbaddin.ini")
  EndSub
  
  ----在Windows的目录下,有一文件叫vbaddin.ini,每次VB启动时将根据该文件的设置确定有那些可用的AddIn程序。AddToIni的功能实际就是将当前的程序注册到vbaddin.ini。修改"Myaddin.Connect"为"Test.Connect",使之与当前的Project名称对应。
  
  ----3、在Immediate窗口执行AddToIni,完成对当前Addin的注册。
  
  ----4、打开Connect.cls,在变量声明区有:ImplementsIDTExtensibility
  
  ----IDTExtensibility是VB和AddIn程序交互的Interface。当VB在Addin菜单选AddIdManager,并参照当前的Addin程序"Test"时,OnConnect事件就会触发,IDTExtensibility_OnConnection()程序将被执行。在如下行设置断点:
  
  ----Debug.PrintVBInst.FullName
  
  ----运行当前程序。
  
  ----5、启动另外一个VB例程,生成StandardEXE,名叫Project1。从Addin菜单选AddinManager,我们得到一个列表,我们选择MyAddin并返回。这时,Test被启动并停在
  
  ----Debug.PrintVBInst.FullName
  
  ----注意,VBInstance(VBInst)就是指使用该Addin的VB的集成开发环境(VBEObject)。我们可以它做为一个对象来操作。VBEObject包含VBProjects,每个VBProject包含Vbcomponents,每个VBComponet对应一个模块,每个Form,Class,或Module。
  
  ----6、我们在Test的立即窗口执行:
  
  ----?VBInstance.ActiveProject.Name
  
  ----可以得到Project1的名称。
  
  ----?VBInstance.ActiveProject.VBComponent(0).Name
  
  ----可以得到Project1的第一个模块Form1的名称。
  
  ----到此为止,我们已经基本说明了AddIn的技术内涵。剩下的工作就很容易理解了。
  
  ----7、在Project1的AddinManager中,将MyAddin去掉。
  
  ----8、再修改Test,打开frmAddin,将
  
  PrivateSubOKButton_Click()
  MsgBoxVBInstance.FullName
  EndSub
  改为:
  PrivateSubOKButton_Click()
  CallmReplace()
  EndSub
  
  PrivateSubmReplace()
  DimoProAsVBProject
  DimoComAsVBComponent
  DimbFindAsBoolean
  DimnFindLineasinteger
  DimnfindColasinteger
  
  Screen.MousePointer=vbHourglass
  OnErrorGoToerrmReplace
  
  SetoPro=VBInstance.ActiveVBProject
  
  '检查程序是否已保存
  IfoPro.FileName=""ThenMsgBox"请先保存!";ExitSub
  
  ForEachoComInoPro.VBComponents
  bFind=True
  DoWhilebFind
  '查找要替换的代码段
  bFind=oCom.CodeModule.Find("dimnIndexasinteger",nFindLine,nfindCol,oCom.CodeModule.CountOfLines,500,True
  IfbFindThen
  IfoCom.CodeModule.Lines(nFindLine 1,1)="nIndex=cStr(vsFlex.Text)"
  '找到后替换
  oCom.CodeModule.ReplaceLine
  nFindLine,"dimsIndexasstring"
  oCom.CodeModule.ReplaceLine
  nFindLine 1,"sIndex=Spread.text"
  Else
  bFind=false
  EndIf
  EndIf
  Loop
  NextoCom
  
  Screen.MousePointer=vbDefault
  ExitSub
  
  errmReplace:
  Beep
  Screen.MousePointer=vbDefault
  MsgBox"ERROR!"
  EndSub
  
  ----9、我们再使Test进入运行状态。
  
  ----10、我们再重复第五步,会在Project1的Addin菜单中多一项"MyAddin"。我们在Project1中加入一些要替换的代码,然后执行MyAddin,替换工作就会完成。
  
  ----11、有朋友不希望在Addin菜单出现"MyAddin"字样,而是具有更明确含义的标识,如"替换"。改动Test的ConnectClass----IDTExtensibility_OnConnection(),将
  
  SetmcbMenuCommandBar=AddToAddInCommandBar("MyAddIn")
  改为SetmcbMenuCommandBar=AddToAddInCommandBar("替换")
  如果你想将AddinManager中的MyAddin改为
  "Replace",可用notepad打开Connect.cls,将:AttributeVB_Description="MyAdd-In"
  改为:AttributeVB_Description="Replace"
  
  ----以上介绍地只是AddIn技术的一个简单应用,了解其机理后,大家可根据需要做出自己的工具。对于一些专业的应用软件开发商来说,积累越多的AddIn工具,便可以大大提高编码效率。->

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-14546-1.html
网站维护教程更新时间:2012-04-03 01:08:49  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer