为类型库(Type Library)生成帮助文件


        在昨天的随笔中给出了 一个查看类型库(Type Library)详细信息的工具的实现方法,今天又添加了为类型库自动生成帮助文件的功能。

        主要是调用Codestone Ltd提供的tlbdoc.exe,偶然在网上发现的一个好东东,它可以为Type Library生成Windows帮助文件:

o_tlbhelpdos.jpg

        增加的“生成帮助”功能:

o_tlbhelpgenhelp.jpg

        具体实现:

 1 None.gif          private   void  btnGenHelp_Click( object  sender, System.EventArgs e)
 2 ExpandedBlockStart.gifContractedBlock.gif         dot.gif {
 3InBlock.gif            if (this.lvTL.SelectedItems.Count == 0)
 4InBlock.gif                return;
 5InBlock.gif
 6InBlock.gif            string strGUID = this.lvTL.SelectedItems[0].SubItems[2].Text;
 7InBlock.gif            string strVersion = this.lvTL.SelectedItems[0].SubItems[1].Text;
 8InBlock.gif
 9InBlock.gif            TypeLibBrowser.TypeLib tlbDetail = this.tlbList.GetTLDetail(strGUID, strVersion);
10InBlock.gif
11InBlock.gif            string strFirstFile = "";
12InBlock.gif
13InBlock.gif            if (tlbDetail.Files != null)
14ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
15InBlock.gif                foreach(TypeLibBrowser.TLBFile tlbFile in tlbDetail.Files)
16ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
17InBlock.gif                    strFirstFile = tlbFile.File;
18InBlock.gif                    break;
19ExpandedSubBlockEnd.gif                }

20ExpandedSubBlockEnd.gif            }

21InBlock.gif
22InBlock.gif            if (strFirstFile != null && strFirstFile != String.Empty)
23ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
24InBlock.gif                try
25ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
26InBlock.gif                    System.Diagnostics.ProcessStartInfo psiGenHelp = new System.Diagnostics.ProcessStartInfo();
27InBlock.gif                    //调用tlbdoc.exe生成帮助文件
28InBlock.gif                    psiGenHelp.FileName = System.Windows.Forms.Application.StartupPath + @"\tlbdoc.exe";
29InBlock.gif                    psiGenHelp.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
30InBlock.gif                    try
31ExpandedSubBlockStart.gifContractedSubBlock.gif                    dot.gif{
32InBlock.gif                        //设置当前进程工作目录,注意可能会出现System.IO.Path.GetDirectoryName(strFirstFile)为空
33InBlock.gif                        System.Environment.CurrentDirectory = System.IO.Path.GetDirectoryName(strFirstFile);
34InBlock.gif                        //为tlbdoc.exe指定参数
35InBlock.gif                        psiGenHelp.Arguments = System.IO.Path.GetFileName(strFirstFile) + " /c /r";
36ExpandedSubBlockEnd.gif                    }

37InBlock.gif                    catch
38ExpandedSubBlockStart.gifContractedSubBlock.gif                    dot.gif{
39InBlock.gif                        psiGenHelp.Arguments = strFirstFile + " /c /r";
40ExpandedSubBlockEnd.gif                    }

41InBlock.gif                    System.Diagnostics.Process proGenHelp = System.Diagnostics.Process.Start(psiGenHelp);
42InBlock.gif                    proGenHelp.Close();
43ExpandedSubBlockEnd.gif                }

44InBlock.gif                catch
45ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
46InBlock.gif                    System.Windows.Forms.MessageBox.Show("生成帮助文件时发生了一个错误!""提示");
47ExpandedSubBlockEnd.gif                }

48ExpandedSubBlockEnd.gif            }

49ExpandedBlockEnd.gif        }

        源码下载:DOWN 

        14.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值