现在的位置: 首页 >> 程序开发 >> C#.NET >> C#反编译微软MSDN2003的帮助文档,并将反编译结果保存到一个SQLSERVER数据库中
添加时间:2005-10-30 来源:网教中国 作者:
C#反编译微软MSDN2003的帮助文档,并将反编译结果保存到一个SQLSERVER数据库中

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;

namespace MSDNOUT
{
 /// <summary>
 /// 反编译微软MSDN2003文档并保存到数据库的程序主窗体
 /// </summary>
 public class dlgMSDNOut : System.Windows.Forms.Form
 {
  /******************************************************************************************

  声明:本程序只是研究性的程序,没有损害微软对MSDN的版权的意图,并承认
  微软对 MSDN , Microsoft Help 2.0 SDK , HXS文件格式,MSDE 等版权所有权

  本程序能反编译微软MSDN2003的帮助文档,并将反编译结果保存到一个SQLSERVER数据库中
  
  本文件为一个独立的C#代码文件,不需要依赖任何其他文件,使用VS.NET建立一个
  C#的默认名称空间为MSDNOUT的Windows应用程序后将该文件内容覆盖掉系统自动生成
  的Form1.cs文件内容即可编译通过并执行,本程序在微软.NET框架1.1简体中文版的
  Windows2000Server环境下测试通过, MDAC版本2.7,数据库服务器为MSDE,版本8.00.760(SP3)
  
  本程序假定你将MSDN2003安装在 C:\Program Files\MSDN\2003FEB\2052
  还假定安装了 Microsoft Help 2.0 SDK , 并假定安装在目录
  "C:\Program Files\Microsoft Help 2.0 SDK" , 该SDK安装文件可在微软网站下载

  本程序长时间频繁的读写临时文件,因此可以使用一个虚拟硬盘工具在
  物理内存中虚拟一个磁盘,这样可以大大加快程序的运行速度
  可在 http://down1.tech.sina.com.cn/cgi-bin/download/download.cgi?s_id=3761&num=1
  下载一个虚拟硬盘工具
  
  程序使用的数据库为MSSQLSERVER,在此使用了MSDE,由于MSDE的单个数据库
  大小限制在2GB内,而MSDN文件总共超过了2GB,因此程序运行时还根据需要
  切换数据库,本程序使用的数据库文件保存在 f:\db 下面
  使用前请执行以下SQL语句来初始化数据库

  CREATE DATABASE MSDN1 ON (NAME = 'MSDN1', FILENAME = 'f:\db\MSDN1.mdf' )";

  CREATE TABLE [MSDNFileList] (
   [MFileID] [int] NOT NULL ,
   [MFileName] [varchar] (200) COLLATE Chinese_PRC_CI_AS NOT NULL ,
   [MDBName] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
   [MFileLength] [int] NULL ,
   CONSTRAINT [PK_MSDNFileList] PRIMARY KEY  CLUSTERED
   (
    [MFileName]
   )  ON [PRIMARY]
  ) ON [PRIMARY]
  GO

  CREATE TABLE [MSDNFile] (
   [MFileID] [int] NOT NULL ,
   [MFileContent] [image] NULL ,
   CONSTRAINT [PK_MSDNFile] PRIMARY KEY  CLUSTERED
   (
    [MFileID]
   )  ON [PRIMARY]
  ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

   *****************************************************************************************/
  
  /// <summary>
  /// 取消操作标记
  /// </summary>
  private bool bolCancel  = false ;
  /// <summary>
  /// 暂停操作标记
  /// </summary>
  private bool bolPause = false ;
  /// <summary>
  /// 主数据库连接字符串
  /// </summary>
  private System.Data.SqlClient.SqlConnection MainConn = null;
  /// <summary>
  /// 文档数据库连接字符串
  /// </summary>
  private System.Data.SqlClient.SqlConnection DataConn = null;
  /// <summary>
  /// 插入文档列表的命令对象
  /// </summary>
  private System.Data.SqlClient.SqlCommand InsertNameCmd = null;
  /// <summary>
  /// 查询文档内容的命令对象
  /// </summary>
  private System.Data.SqlClient.SqlCommand InsertCmd = null;
  /// <summary>
  /// 保存文档数据的数据库名称
  /// </summary>
  private string CurrentDBName = "MSDN1" ;
  /// <summary>
  /// 进行数据处理的线程对象
  /// </summary>
  private System.Threading.Thread myThread = null;

  /// <summary>
  /// 初始化数据库连接
  /// </summary>
  private void InitDB()
  {
   if( MainConn != null)
   {
    MainConn.Dispose();
    DataConn.Dispose();
    InsertNameCmd.Dispose();
   }
   // 打开数据库连接
   MainConn = new System.Data.SqlClient.SqlConnection();
   DataConn = new System.Data.SqlClient.SqlConnection();
   MainConn.ConnectionString = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MSDN1;Data Source=(local)";
   DataConn.ConnectionString = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=" + CurrentDBName + ";Data Source=(local)";
   MainConn.Open();
   DataConn.Open();



[1] [2] [3] [4] [5] [6]  下一页


上一篇:C#中实现DataGrid双向排序 下一篇:用C#开发.NET CF 蓝牙通信模块
大部分文章摘自网上,如有侵犯您的权益请与我们联系,我们会第一时间进行处理,谢谢! [ 打印文章 ] [ 关闭窗口 ]
推荐文章
·Snake.Net中的ORM(三)
·Visual C#托管Socket的实现方法(
·对.NET Framework "事件"机制理
·C#锐利体验(3.2)
·在C#中使用COM+实现事务控制
·.NET Remoting编程简介
·全面剖析VB.NET(3)
·微软的远程处理框架.NET Remotin
·C#重点知识详解(一)
·冰雹欲来风满楼--.NET计划初露锋
相关文章
 
最新文章
·数据结构与算法(C#实现)系列---(
·数据结构与算法(C#实现)系列---(
·数据结构与算法(C#实现)系列---(
·ASP.net 验证码(C#)
·Snake.Net中的ORM(三)
·Snake.Net中的ORM(二)
·Snake.Net中的ORM(-)
·用C#生成随机中文汉字验证码的基
·Autodesk官方最新的.NET教程(五
·Autodesk官方最新的.NET教程(四
Google