c#開發wps插件(2)


    上一篇,我們談了插件開發原理,現在該是應用原理的時候了。工欲善其事必先利其器,首先安裝wps 2016專業版,然后再開發。

    第一步:打開vs2010,新建一個類庫項目,項目結構如下:

   

說明:其中Resource1.resx是資源文件,它包括了兩張png圖片一個定義ribbon的txt文件。

 第二步:項目生成設置

勾選com互操作注冊。

第三步:設置程序集文件

打開AssemblyInfo.cs設置ComVisible為true,如圖所示:

第四步:為程序集簽名

第五步:准備工作做好了,現在可以安心寫代碼了。

添加com引用:

     

kingsoft Add-In Design中定義了com組件要實現的接口。

Upgrade Kingsoft Wps 3.0 公布了wps word  api。

我們再看看WPSWord2016.cs中的核心代碼:

 1         public void OnConnection(object Application, ext_ConnectMode ConnectMode, object AddInInst, ref Array custom)
 2         {
 3             app = Application;
 4             Console.WriteLine("插件已連接");
 5         }
 6         public void OnStartupComplete(ref Array custom)
 7         {
 8             Process[] processes = Process.GetProcesses();
 9             foreach (Process process in processes)
10             {
11                 if (process.ProcessName.ToLower() == "wps")
12                 {
13                     Console.WriteLine(process.ProcessName + "進程已啟動");
14 
15                     wpsapp = app as Word.Application;
16                     wpsapp.DocumentBeforeClose += new ApplicationEvents4_DocumentBeforeCloseEventHandler(wpsapp_DocumentBeforeClose);
17 
18                     break;
19                 }
20             }
21         }
22         void wpsapp_DocumentBeforeClose(Document Doc, ref bool Cancel)
23         {
24             Console.WriteLine(Doc.FullName + "wps文檔將要關閉");
25         }
OnConnection的參數 Application代表了我們的應用程序,如果我們開發的是word,則代表Word.Application。
OnStartupComplete中,可以實現Application的文檔相關事件,比如 DocumentBeforeClose。

 第六步:生成解決方案。

 com組件必須注冊到注冊表中,才能夠使用。由於第二步的項目設置,所以這一步微軟幫我們做了,接下來把插件信息寫入到注冊表中:

1 Windows Registry Editor Version 5.00
2 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Word\Addins\WpsWordAddin.WPSWord2016]
3 "FriendlyName"="WpsWordAddin"
4 "Description"="wps word示例"
5 "LoadBehavior"=dword:00000003
6 "CommandLineSafe"=dword:00000001
7 [HKEY_CURRENT_USER\Software\Kingsoft\Office\WPS\AddinsWL]
8 "WpsWordAddin.WPSWord2016"=""

第七步:打開wps word查看插件是否能夠正確地加載。

到這一步還不太清楚的話,可以下載源碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM