一、序言 VBE2021為開源工程,,使用者可在源工程代碼基礎(chǔ)上,,修改、完善,、擴(kuò)展,。 有參與完善的作者,插件最終發(fā)布會(huì)以作者名單形式列出,。參與者可申請權(quán)限,,修改本文檔。 二,、工程文件說明整體思路及調(diào)試新建dll動(dòng)態(tài)鏈接庫工程,,利用IDTExtensibility2接口,實(shí)現(xiàn)對VBE的二次開發(fā),。 打開工程調(diào)試,,需要注冊dll(詳見本文檔2.4.1內(nèi)容),并且啟用外部Excel或者其他程序,。
2.1 窗體部分2.1.1 CodeFrom.vb
主要功能:
2.1.2 CodeList.vb窗體對應(yīng)于:智能提示功能
主要功能:
bug需解決:
2.1.3 IniForm.vb主要功能:
2.1.4 author.vb主要功能:
2.1.5 UpdateForm.vb主要功能:
2.2 模塊部分2.2.1 Varaint.vb存儲(chǔ)各類變量、常量,、API函數(shù) 2.2.2 IndentCode.vb和RebuildModuleCode.vb代碼美化縮進(jìn)的核心代碼,。 2.2.3 Connect.vb利用IDTExtensibility2接口,實(shí)現(xiàn)VBE菜單的加載,。頂部菜單,、按鈕、右鍵菜單等等代碼均在此,。 接口的實(shí)現(xiàn)方式以及菜單的添加,,參考網(wǎng)址: https://www./articles/2012/MZ2012013.aspx https://www./articles/2012/MZ2012015.aspx 其中,_myToolBarButton_Click點(diǎn)擊事件是所有的點(diǎn)擊觸發(fā)的事件。 2.3 添加引用部分
2.3.1 Ude識(shí)別txt編碼形式,,解決讀取txt內(nèi)容亂碼問題,。 2.3.2 VBE相關(guān)引用VBE相關(guān)類庫,實(shí)現(xiàn)VBE對象的操作,。 2.4 打包注冊部分實(shí)現(xiàn)插件的加載有2步:①注冊dll,;②導(dǎo)入VBE加載項(xiàng)的注冊表。 注冊dll是利用RegAsm.exe去注冊,。 2.4.1 手動(dòng)注冊方式如果是手動(dòng)加載和卸載插件,,需要手動(dòng)運(yùn)行下面的文件,并且是管理員身份運(yùn)行,。 兩個(gè)文件:RegAsm.bat和RegAddIn.reg RegAsm.bat @ECHO OFF set dll="VBE2021.dll" %SystemRoot%"\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" /codebase %~dp0\%dll% %SystemRoot%"\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" /codebase %~dp0\%dll% exit RegAddIn.reg Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\VBA\VBE\6.0\Addins\VBE2021.Connect] "FriendlyName"="VBE2021" "Description"="VBE2021" "LoadBehavior"=dword:00000003 "CommandLineSafe"=dword:00000000
[HKEY_CURRENT_USER\Software\Microsoft\VBA\VBE\6.0\Addins64\VBE2021.Connect] "FriendlyName"="VBE2021" "Description"="VBE2021" "LoadBehavior"=dword:00000003 "CommandLineSafe"=dword:00000000 2.4.2 手動(dòng)卸載方式兩個(gè)文件:RegAsm.bat和RegAddIn.reg UnRegAsm.bat @ECHO OFF set dll="VBE2021.dll" %SystemRoot%"\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" /codebase %~dp0\%dll% /u %SystemRoot%"\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" /codebase %~dp0\%dll% /u PAUSE CLS RegAddIn.reg Windows Registry Editor Version 5.00
[-HKEY_CURRENT_USER\Software\Microsoft\VBA\VBE\6.0\Addins\VBE2021.Connect]
[-HKEY_CURRENT_USER\Software\Microsoft\VBA\VBE\6.0\Addins64\VBE2021.Connect] 2.4.3 Innosetup打包直接注冊和卸載innosetup可實(shí)現(xiàn)注冊表的寫入和dll的直接注冊,。 源代碼如下: #define MyAppName "VBE2021" #define MyAppVerName "VBE2021"
[Setup] AppName={#MyAppName} AppVerName={#MyAppVerName} //版本號(hào) AppVersion=1.3 VersionInfoProductName=VBE2021 DefaultDirName= "d:\VBE2021" //禁止用戶選擇安裝路徑 DisableDirPage=no DisableProgramGroupPage=yes DefaultGroupName=VBE2021 OutputDir=. SetupIconFile=B.ico OutputBaseFilename=VBE2021 WindowShowCaption=no DisableWelcomePage=no //PrivilegesRequired=admin ArchitecturesInstallIn64BitMode = x64 ia64 //控制面板卸載界面圖標(biāo) UninstallDisplayIcon= {app}\B.ico
//發(fā)布者名稱 AppPublisher=作者:燈 [code] procedure InitializeWizard(); begin WizardForm.LICENSEACCEPTEDRADIO.Checked:=true; end;
[Messages] SetupWindowTitle=VBE2021 安裝向?qū)?/code> 但是dll的直接注冊我一直沒成功,,所以目前打包的時(shí)候把RegAsm.bat也打包進(jìn)去了,,安裝插件的時(shí)候,直接運(yùn)行RegAsm.bat實(shí)現(xiàn)間接注冊,。 三,、插件使用說明3.1 安裝
3.2 代碼輔助錄入3.1.1 菜單錄入代碼
3.1.2智能提示錄入代碼輸入完部分關(guān)鍵字,按空格鍵,。即可彈出智能提示,。 智能提示可在配置中進(jìn)行關(guān)閉。
3.3 代碼美化縮進(jìn)3.4 代碼庫存儲(chǔ)修改
|
|