• ASP.NET面试题2


    1. 简述 private、 protected、 public、 internal 修饰符的访问权限。
    答 . 
    private :   私有成员, 在类的内部才可以访问。 
         
    protected : 保护成员,该类内部和继承类中可以访问。 
         
    public :    公共成员,完全公开,没有访问限制。 
         
    internal:   在同一命名空间内可以访问。

    2 .列举ASP.NET 页面之间传递值的几种方式。 
    答. 
    1.使用QueryString,  如.?id=1; response. Redirect()
        
    2.使用Session变量 
        
    3.使用Server.Transfer

    3. 一列数的规则如下: 112358132134  求第30位数是多少, 用递归算法实现。
    答:
    public class MainClass 
        { 
            
    public static void Main()   
            { 
                Console.WriteLine(Foo(
    30)); 
            } 
            
    public static int Foo(int i) 
            { 
                
    if (i <= 0
                    
    return 0
                
    else if(i > 0 && i <= 2
                    
    return 1
                
    else return Foo(i -1+ Foo(i - 2); 
            } 
        } 

    4.C#中的委托是什么?事件是不是一种委托?
    答 :      
    委托可以把一个方法作为参数代入另一个方法。
    委托可以理解为指向一个函数的引用。
    是,是一种特殊的委托

    5.override与重载的区别
    答 :
    override 与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要
    Override 是进行基类中函数的重写。为了适应需要。

    6.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?
    答 :
    this.Server.Transfer

    7.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?
    答:
          
    foreach (System.Windows.Forms.Control control in this.Controls)
          {
    if (control is System.Windows.Forms.TextBox)
    {
        System.Windows.Forms.TextBox tb 
    = (System.Windows.Forms.TextBox)control ;
        tb.Text 
    = String.Empty ;
    }
          }

    8.请编程实现一个冒泡排序算法?
    答:
            
    int [] array = new int [*] ;
    int temp = 0 ;
    for (int i = 0 ; i < array.Length - 1 ; i++)
    {
    for (int j = i + 1 ; j < array.Length ; j++)
    {
    if (array[j] < array[i])
    {
    temp 
    = array[i] ;
    array[i] 
    = array[j] ;
    array[j] 
    = temp ;
    }
    }
    }

    9.描述一下C#中索引器的实现过程,是否只能根据数字进行索引?
    答:不是。可以用任意类型。

    10.求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m
    答:
        
    int Num = this.TextBox1.Text.ToString() ;
    int Sum = 0 ;
    for (int i = 0 ; i < Num + 1 ; i++)
    {
    if((i%2== 1)
    {
    Sum 
    += i ;
    }
    else
    {
    Sum 
    = Sum  - I ;
    }
    }
    System.Console.WriteLine(Sum.ToString());
    System.Console.ReadLine() ;

    11.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?
    答:一般为3层
            数据访问层,业务层,表示层。
            数据访问层对数据库进行增删查改。 
            业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。
            表示层为了与用户交互例如用户添加表单。
    优点:  分工明确,条理清晰,易于调试,而且具有可扩展性。
    缺点:  增加成本。

    12.在下面的例子里
         
    using System;
         
    class A
         {
              
    public A()
               {
                    PrintFields();
               }
              
    public virtual void PrintFields(){}
          }
          
    class B:A
          {
               
    int x=1;
               
    int y;
               
    public B()
       {
                   y
    =-1;
               }
               
    public override void PrintFields()
               {
                   Console.WriteLine(
    "x={0},y={1}",x,y);
               }
    当使用new B()创建B的实例时,产生什么输出?
    答:X
    =1,Y=0;x= 1 y = -1

    13.什么叫应用程序域?
    答:应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小。

    14.CTS、CLS、CLR分别作何解释?
    答:CTS:通用语言系统。CLS:通用语言规范。CLR:公共语言运行库。

    15.什么是装箱和拆箱?
    答:从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。

    16.什么是受管制的代码?
    答:
    unsafe:非托管代码。不经过CLR运行。

    17.什么是强类型系统?
    答:RTTI:类型识别系统。

    18.net中读写数据库需要用到那些类?他们的作用?
    答:DataSet:数据存储器。
        DataCommand:执行语句命令。
        DataAdapter:数据的集合,用语填充。

    19.ASP.net的身份验证方式有哪些?分别是什么原理?
    答:
    10。Windwos(默认)用IISFrom(窗体)用帐户.Passport(密钥)

    20.什么是Code-Behind技术?
    答:代码后植。

    21.在.net中,配件的意思是?
    答:程序集。(中间语言,源数据,资源,装配清单)

    22.常用的调用WebService的方法有哪些?
    答:
    1.使用WSDL.exe命令行工具。
        
    2.使用VS.NET中的Add Web Reference菜单选项

    23..net Remoting 的工作原理是什么?
    答:服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置。

    24.在C#中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的区别。 
    答:
    string str = null 是不给他分配内存空间,而string str = "" 给它分配长度为空字符串的内存空间。

    25.请详述在dotnet中类(class)与结构(struct)的异同?
    答:Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的. 

    26.根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写: 
    namespace test 

    public delegate void OnDBOperate(); 
    public class UserControlBase : System.Windows.Forms.UserControl 

    public event OnDBOperate OnNew; 
    privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs e)

    if(e.Button.Equals(BtnNew)) 

    //请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。


    }
    答:
    if( OnNew != null )  
        OnNew( 
    this, e ); 

    27.分析以下代码,完成填空 
    string strTmp = "abcdefg某某某"
    int i= System.Text.Encoding.Default.GetBytes(strTmp).Length; 
    int j= strTmp.Length; 
    以上代码执行完后,i
    = j= 
    答:i
    =13,j=10 

    28.SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号
    答:Select ID FROM table1 Where LastUpdateDate 
    = (Select MAX(LastUpdateDate) FROM table1) 

    29.根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?并简要说明理由。
    public void test(int i) 

       
    lock(this
     { 
       
    if (i>10
       { 
         i
    --
         test(i); 
       } 
     } 
    }
    答:不会发生死锁,(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。但如果把int换做一个object,那么死锁会发生)

    30.简要谈一下您对微软.NET 构架下remoting和webservice两项技术的理解以及实际中的应用。
    答:WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP
    /IP,二进制传送提高效率。

    1.new有几种用法
     第一种:
    new Class();
     第二种:覆盖方法
    public new XXXX(){}
     第三种:
    new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。

    2.如何把一个array复制到arrayList里

    foreachobject o in array )arrayList.Add(o);

    3.datagrid.datasouse可以连接什么数据源 [dataset,datatable,dataview]

    dataset,datatable,dataview , IList

    4.概述反射和序列化

    反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性

    序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。

    5.概述o/r mapping 的原理

    利用反射,配置 将类于数据库表映射

    6.类成员有( )种可访问形式

    可访问形式?不懂。

    可访问性:
    public ,protected ,private,internal

    7.用sealed修饰的类有什么特点

    sealed 修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其他类的基类,则会发生编译时错误。

    密封类不能同时为抽象类。

    sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。

    8.列举ADO.NET中的五个主要对象,并简单描述

    connection,command,dataReader,trans,dataset 

    9.执行下面代码后:

    String strTemp 
    ="abcdefg 某某某"
    Int i System.Text.Encoding.Default.GetBytes(strTemp).Length;
    Int j 
    = strTemp.Length;
    问:i
    =(14 ) ;j=(11 )

    i
    =(14 ) ;j=(11 ) 中文两个字节

    10.C#中,string str = null 与 string str ="",请尽量用文字说明区别。(要点:说明详细的内存空间分配)

    string str ="" 分配空间 

    11.详述.NET里class和struct的异同!

    class:放在 ? struct放在?
    struct值传递

    类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。细心的程序员有时可以通过聪明地使用结构来增强性能。


    12.概述.NET里对 remoting 和 webservice 两项技术的理解和实际中的应用。

    远程逻辑调用,remoing接口只能用在.net中

    13.什么是code-behind技术

    aspx and cs 

    14.概述三层结构体系
    web
    /business/dataaccess

    15.asp.net如何实现MVC模式,举例说明!
    web
    /business/dataaccess

    ----------------------------------------------------------------------------------------------------------

    1.面向对象的思想主要包括什么?
    答:这个题范围太广,不知道说什么.

    2.什么是ASP.net中的用户控件
    答:用户控件就是.ascx扩展名的东西喽,可以拖到不同的页面中调用,以节省代码.比如登陆可能在多个页面上有,就可以做成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已写方法调整.

    3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
    答:装箱就是把值类型转成引用类型,从MS IL角度看好像是boxing,没记错的话是把值从堆栈转到堆中.拆箱相反,重载就是指一个方法名同,参数个数不同,返回值可以相同的方法.CLR是通用语言运行时,其它的不清楚.

    4.列举一下你所了解的XML技术及其应用
    答:XML可是好东西,保存配置,站与站之间的交流,WEB SERVICE都要用它.

    5.值类型和引用类型的区别?写出C#的样例代码。
    答:结构是值类型,类是引用类型,所以传结构就是值类型的应用啦,传对象或类就是引用类型的,这个不用多写了吧.

    6.ADO.net中常用的对象有哪些?分别描述一下。
    答:connection command sqladapter dataset datatable dataview等等.写不完了.

    7.如何理解委托?
    答:据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法.
    msdn2005中是这样解释的:

    委托具有以下特点:
    委托类似于 C
    ++ 函数指针,但它是类型安全的。
    委托允许将方法作为参数进行传递。
    委托可用于定义回调方法。
    委托可以链接在一起;例如,可以对一个事件调用多个方法。
    方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。
    C# 
    2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。

    8.C#中的接口和类有什么异同。
    答:这个异同可多了,要说清楚还真不容易.

    9.。net中读写数据库需要用到哪些类?他们的作用
    答:这个类自已可以写的啊,你是指基类吗
    ?那configuration,sqlconnection,sqlcommand等都要用到.

    10.UDP连接和TCP连接的异同。
    答:前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连结.

    11.ASP.net的身份验证方式有哪些?分别是什么原理?
    答:form认证,windows集成认证等,原理不清楚.

    12.进程和线程分别怎么理解?
    答:进程是老子,线程是儿子,没有老子就没有儿子,一个老子可以有多个儿子.一个儿子可以成为别人的儿子,一个老子也可以为别的老子生儿子.

    13.什么是code-Behind技术。
    答:代码分离,这是个明智的东西,像ASP这样混成一堆很不爽.或者可以理解成HTML代码写在前台,C#代码写在后台.当然前台也有脚本,类的调用等,其实写在一起也是可以的.

    14.活动目录的作用。
    答:这个不明白.请明白的补充一下.

    15..net中读写XML的类都归属于哪些命名空间?
    答:System.Xml
    我自已写的就不一定了,嘿嘿.

    16.解释一下UDDI、WSDL的意义及其作用。
    答:什么东西
    ?

    17.什么是SOAP,有哪些应用。
    答:SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。这种相互通信采用的是XML格式的消息,具体请看:http:
    //playist.blogchina.com/2521621.html

    18.如何部署一个ASP.net页面。
    答:随便啦,想直接上传就直接上传,想打包成EXE就打包,看个人喜好.

    19.如何理解.net中的垃圾回收机制。
    答:GC
    ?对象创建了总要清除啊,不然内存哪够用?

    20.常用的调用webservice方法有哪些?
    答:调用就调用,还有很多方法吗
    ?


    Q3:维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么 

    尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性、一致性;最后再考虑用自写业务逻辑实现,但这种方式效率最低、编程最复杂,当为下下之策。 


    Q4:ADO。NET相对于ADO等主要有什么改进? 

    我个人认为,ADO.NET与ADO相比,优势在于提供了数据集和数据适配器,有利于实现分布式处理,降低了对数据库服务器资源的消耗

    Q5:ASP。NET与ASP相比,主要有哪些进步? 
    坦率的说,我不喜欢ASP.NET。也许,开始许多人会喜欢MS提供的那么一大堆的服务器控件,但真的碰上了复杂的界面,那么这些服务器控件很可能成为“鸡肋”。如果一个程序员没有真正理解MS封装在服务器控件后面的实现机制,这些东西很容易被滥用,成为麻烦的来源。 

    如果一定要说ASP.NET比ASP进步,还是有的:在形式上实现了面向对象编程;预编译的服务器端代码;更好的安全机制(那些ASPX文件的后台代码是以另外一个帐号运行的,与启动IIS的帐号不相同)等。 


    Q6:C#中的委托是什么?事件是不是一种委托? 
    委托本质上是一种“方法接口”,它相当于C
    /C++中的函数指针,当然它比函数指针安全,在C#中通常用于事件处理。与JAVA相比,可以避免使用大量小粒度的匿名类。(不过,也许微软就是使用类似于JAVA的匿名类实现委托的,只不过从字面上看起不是那么回事罢了,谁知道呢?) 

    事件不是委托,不过由于事件的性质决定了处理它的程序逻辑能访问的参数,因此,在C#中处理事件的逻辑都包装为委托(一种“方法接口”)。实际上,如果你处理自定义的事件,就像JAVA中那样用接口实现也是可以的,不过这么做在C#一般没有什么特别的好处。 

    Q7:描述一下C#中索引器的实现过程,是否只能根据数字进行索引? 

    Q8:C#中要使一个类支持FOREACH遍历,实现过程怎样?

    ------------------------------------------------------------------------------------------------------------------

    Q1:求以下表达式的值,写出您想到的一种或几种实现方法:   
              
    1-2+3-4+……+m   
      Q2:给定以下两个表:   
              部门ID       部门名称   
                  
    1                   部门1   
                  
    2                   部门2   
                  
    3                   部门3   
                  
    4                   部门4   
        
          人员ID     人员姓名         部门ID   
            
    1                   姓名1           1   
            
    2                   姓名2           1   
            
    3                   姓名3           2   
            
    4                   姓名4             3   
            
    5                     姓名5         5   
        
          (
    1)用一条SQL语句显示所有人员的姓名及所在部门,没有部门的用“未标志”代替。   
            (
    2)用ASP。NET中的DATAGRID控件,实现以下显示,描述你的思路。   
        
                                                                    姓名1   
            部门1                                               姓名2   
              
            部门2                                               ……   
          部门3                                                     ……   
          
        
      Q3:   维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么   
        
      Q4:ADO。NET相对于ADO等主要有什么改进?   
        
      Q5:ASP。NET与ASP相比,主要有哪些进步?   
        
      Q6:C#中的委托是什么?事件是不是一种委托?   
        
      Q7:描述一下C#中索引器的实现过程,是否只能根据数字进行索引?   
        
      Q8:C#中要使一个类支持FOREACH遍历,实现过程怎样?   
        
      Q9:C#中,执行以下代码后S的结果:   
              
    string[]   a=new   string[5];   
              aa[
    0]="33";   
              aa[
    6]="66";   
      
    string   s="";   
      
    foreach(string   m   in   aa)   s+=m;   
        
      Q10:写一个HTML页面,实现以下功能,左键点击页面时显示“您好”,右键点击时显示“禁止右键”。并在2分钟后自动关闭页面。   
        
        
      Q11:你对XMLHTTP、WEBSERVICE   了解吗?简单描述其特点、作用   
        
      Q12:接口和抽象类有什么区别?你选择使用接口和抽象类的依据是什么?   
        
      Q13:自定义控件和一般用户控件的异同?如果要用这两者之一,你会选择哪种?为什么   
        
      Q14:大概描述一下ASP。NET服务器控件的生命周期   
      Q15:UML   
      Q16:面向对象的概念,主要特点   
      Q17:类划分的依据。类粒度问题   
      Q18:事物管理问题


    在指定的路径下,创建一个bat文件,并且写入内容regsvr32.exe 注册组件
      
    private void WriteFile()
      {
       
    string fileName = Application.StartupPath + @"\reg.bat";
       
    string content = @"regsvr32.exe /s """ +  Application.StartupPath + @"\xxx.ocx""";
       
    byte[] info = new byte[]{255};
       
    if(System.IO.File.Exists(fileName))
       {
        System.IO.File.Delete(fileName);
       }
        
       System.IO.FileStream cfs 
    = System.IO.File.Create(fileName);
       cfs.Close();
       FileInfo fi 
    = new FileInfo(fileName);
       System.IO.FileStream fs 
    = fi.Open(FileMode.OpenOrCreate,FileAccess.ReadWrite);
       info 
    = System.Text.Encoding.GetEncoding("gb2312").GetBytes(content);
       
       fs.Write(info,
    0,info.Length);
       fs.Close();
       System.Diagnostics.Process.Start(Application.StartupPath 
    + @"\reg.bat");

      }

    Regsvr32又一解
    Regsvr32是Windows系统的内嵌命令,通过它可以注册或取消注册对象链接和嵌入控件(OLE),比如最常见的动态链接库文件(DLL)及网页制作和浏览时必须用到的 ActiveX 控件文件(OCX)。但由于缺乏相关的学习资料,许多朋友都误解Regsvr32只是一个安装和卸载DLL动态链接库的命令,更谈不上正确使用它了。所以,应广大读者的点播,本期特刊登此文,以期达到帮助读者快速掌握并熟练使用Regsvr32命令的目的。
      Regsvr32命令,在许多杂志媒体以及网络教学站点中出现的频率极高,可是许多朋友对它的了解却很浅显。其实,Regsvr32命令拥有强大的本领。例如,当我们的Windows系统或IE浏览器出现故障的时候,通过使用Regsvr32命令来注册文件就可轻松解决问题。现在,就让我们开始Regsvr32命令的学习之旅吧!

    一、准备篇 Regsvr32命令哪里寻

      不同的Windows系统, Regsvr32.exe命令的位置也不同。正常状态下, Windows 
    2000/XP系统中,该命令位于C:\WINNT\system32下;如果是Windows 9x系统,该命令则位于C:\WINNT\system下。

    二、基础篇 Regsvr32命令的使用方法

      命令的讲解往往枯燥难懂,所以本篇借助实例来辅助说明。例如,我们要注册C:\kk文件夹下一个名为kav.dll的动态链接库,可以在“开始→运行”中键入“CMD”命令,在打开的DOS窗口中键入“Regsvr32 C:\kk\kav.dll”并回车。此时,系统会自动加载kav.dll且开始尝试调用该动态链接库的DLLSelfRegister函数,成功调用后会显示相应的提示框。如果要卸载Kav.dll动态链接库,则键入“Regsvr32 
    /u C:\kk\kav.dll”即可(如图1)。




      上述只是Regsvr32命令的基本用法,从中可见该命令的格式为:Regsvr32 [
    /s] [/u] [/n] [/i[:cmdline]] dllname。它包括下面4个参数。
    /u:卸载安装的控件或卸载服务器的注册;
    /s:注册成功后不显示操作成功信息框;
    /i:调用DllInstall函数并把可选参数[cmdline]传给它,当使用/u时用来卸载DLL;
    /n:不调用DllRegisterServer,该参数必须和/i一起使用。

      小提示:执行Regsvr32命令还需要系统的Kernel32.dll、User32.dll和Ole32.dll这3个文件才能正常运行。

    三、提高篇 错误提示及解决

      如果Regsvr32命令加载不成功,系统会给予相应提示,它们的含义是什么且如何解决呢?
    1)提示“kav.def is not an executable file and no registration helper is registered for this file type.”:如果键入文件的后缀名不是EXE、DLL或OCX,就会出现以上提示。
    2)提示“LoadLibrary("c:\kav.bat") failed”:系统找不到指定的kav.bat。我们需要指定路径,例如键入Regsvr32 d:\download32\kav.bat。
    3)提示“OleInitialize failed (or OleUninitialize failed)”: COM库的初始化失败。如果Regsvr32命令在加载的时候COM库初始化失败,则命令执行失败。
    4)提示“No DLL name specified”:键入的命令未包括DLL文件名。解决办法是键入完整的DLL文件名即可。

      如果在使用Regsvr32命令时出现以上提示,可以先试着纠正键入的错误,如错误的DLL路径或名称。还不能解决问题时,则需重启计算机。如果DLL等格式的文件已经损坏,则需要重新提取。

    四、高级篇 Regsvr32命令案例实战

      当我们打开一个站点(例如http:
    //www.microsoft.com/windows/ie_intl/cn/default.mspx),点击超链接没有反应,按Shift+鼠标左键也不能新开页面进行浏览,这时就需要使用Regsvr32命令来排除故障。先在“开始→运行”中键入“CMD”命令,启动DOS窗口并键入“Regsvr32 actxprxy.dll”。系统会弹出提示框,单击“确定”后再键入“regsvr32 shdocvw.dll”,注册这2个动态链接库后重启计算机,这样IE浏览器即可恢复正常


    Regsvr32命令详解
    这里有很多Regsvr32命令,看了后就明白了 财富论坛lonelv.lun123.com
    Regsvr32命令修复系统故障实例使用过activex的人都知道,activex不注册是不能够被系统识别和使用的,一般安装程序都会自动地把它所使用的activex控件注册,但如果你拿到的一个控件需要手动注册怎么办呢?如果修改注册表那就太麻烦了,在windows的system文件夹下有一个regsvr32.exe的程序,它就是windows自带的activex注册和反注册工具。财富论坛lonelv.lun123.com财富论坛lonelv.lun123.com
    2000系统的regsvr32.exe在winnt\system32文件夹下;财富论坛lonelv.lun123.com
    WInXP系统的regsvr32.exe在windows\system32文件夹下财富论坛lonelv.lun123.com
    regsvr32的用法为:财富论坛lonelv.lun123.com
    "regsvr32 [/s] [/n] [/i(:cmdline)] dllname”。其中dllname为activex控件文件名,建议在安装前拷贝到system文件夹下。 财富论坛lonelv.lun123.com
    参数有如下意义: 财富论坛lonelv.lun123.com财富论坛lonelv.lun123.com
    /u——反注册控件财富论坛lonelv.lun123.com 
    /s——不管注册成功与否,均不显示提示框 财富论坛lonelv.lun123.com
    /c——控制台输出 财富论坛lonelv.lun123.com
    /i——跳过控件的选项进行安装(与注册不同)财富论坛lonelv.lun123.com 
    /n——不注册控件,此选项必须与/i选项一起使用财富论坛lonelv.lun123.com
    执行该命令的方法:财富论坛lonelv.lun123.com
    1、可以在“开始”--“运行”,调出运行的对话框,也可以使用Win+R热键,然后直接在输入栏输入即可财富论坛lonelv.lun123.com
    2、在开始--运行 输入cmd,调出‘命令提示符’窗口,然后再执行regsvr32命令。财富论坛lonelv.lun123.com
    二、Regsvr32错误消息的说明财富论坛lonelv.lun123.com
    当使用 Regsvr32.exe 时,它会尝试加载该组件并调用它的 DLLSelfRegister 函数。如果此尝试成功,Regsvr32.exe 会显示一个指示成功的对话框。如果此尝试失败,Regsvr32.exe 会返回一条错误消息,其中可能会包括一个 Win32 错误代码。财富论坛lonelv.lun123.com
    以下列表介绍了 RegSvr32 错误消息和可能的原因。财富论坛lonelv.lun123.com 
    Unrecognized flag:
    /invalid_flag 
    键入的标志或开关组合无效(请参阅本文中的“Regsvr32.exe 的用法”一节)。财富论坛lonelv.lun123.com 
    No DLL name specified. 
    未包括 .dll 文件名(请参阅本文中的“Regsvr32.exe 的用法”一节)。 财富论坛lonelv.lun123.com
    Dllname was loaded, but the DllRegisterServer or DllUnregisterServer entry point was not found. 
    Dllname不是.dll 或.ocx 文件。例如,键入 regsvr32 wjview.exe 就会生成该错误消息。财富论坛lonelv.lun123.com 
    例如,键入regsvr32 icwdial.dll 后就会返回该错误消息,因为 Icwdial.dll 文件不能自行注册。如果您怀疑内存中有损坏的Dllname 版本,请尝试重新启动计算机,或重新提取该文件的原始版本。如果您运行的是 Windows NT,可能需要使用 Microsoft Windows NT Server 
    4.0 资源工具包 中的 Kill 或 Pview 工具。有关其他信息,请单击以查看以下 Microsoft 知识库文章:197155 如何终止孤立进程OleInitialize failed (or OleUninitialize failed). 财富论坛lonelv.lun123.com 
    Regsvr32 必须先初始化 COM 库,然后才能调用所需的 COM 库函数并在关闭时撤消对该库的初始化。
    一、轻松修复IE浏览器财富论坛lonelv.lun123.com
    regsvr32 Shdocvw.dll 
    regsvr32 Oleaut32.dll 
    regsvr32 Actxprxy.dll 财富论坛lonelv.lun123.com
    regsvr32 Mshtml.dll 
    regsvr32 Urlmon.dll
    regsvr32 browseui.dll 
    作用:
    1、同时运行以上命令不仅可以解决IE不能打开新的窗口,用鼠标点击超链接也没有任何反应的问题;
    2、还能解决大大小小的其它IE问题,比如网页显示不完整,JAVA效果不出现,网页不自动跳转,打开某些网站时总提示‘无法显示该页’等。财富论坛lonelv.lun123.com
    二、解决Windows无法在线升级的问题财富论坛lonelv.lun123.com
    regsvr32 wupdinfo.dll
    作用:财富论坛lonelv.lun123.com
    Windows的漏洞很多,每隔一段时间就需要使用“Windows Update”升级程序进行在线升级,不过“Windows Update”经常出现无法使用的情况,这时,我们可以使用Regsvr32来解决这个问题。
    三、防范网络脚本病毒有新招财富论坛lonelv.lun123.com
    regsvr32 
    /u scrrun.dll
    作用:财富论坛lonelv.lun123.com
    网络脚本病毒嵌在网页中,上网时在不知不觉中机器就会感染上这种病毒。笔者认为单纯使用杀毒软件并不能有效地防范这些脚本病毒,必须从病毒传播的机理入手。网络脚本病毒的复制、传播都离不开FSO对象(File System Object,文件系统对象),因此禁用FSO对象就能有效地控制脚本病毒的传播。财富论坛lonelv.lun123.com
    如果需要使用FSO对象,键入“regsvr32 scrrun.dll”命令即可。财富论坛lonelv.lun123.com
    四、卸载Win XP自带的ZIP功能
    regsvr32 
    /u zipfldr.dll
    作用:财富论坛lonelv.lun123.com
    Win XP以功能强大而著称,但有些功能却常常令人有“鸡肋”之感,比如Win XP自带的ZIP功能和图片预览功能,不仅占用了系统资源,功能也远不如第三方软件强大。其实用Regsvr32命令可以很容易地卸载这些功能。财富论坛lonelv.lun123.com
    五、修复无法缩略图查看文件问题
    2000: 开始→运行,输入regsvr32 thumbvw.dll
    XP: 开始→运行,输入regsvr32 shimgvw.dll财富论坛lonelv.lun123.com
    六、让WMP播放器支持RM格式财富论坛lonelv.lun123.com
    很多朋友喜欢用Windows Media Player(以下简称WMP)播放器,但是它不支持RM格式,难道非得安装其它播放软件吗
    ?笔者有办法。财富论坛lonelv.lun123.com
    以Win XP为例,首先下载一个RM格式插件,解压缩后得到两个文件夹: Release(用于Windows 9x)和Release Unicode (用于Windows 
    2000/XP);将Release Unicode文件夹下的RealMediaSplitter.ax文件拷贝到“系统盘符\WINDOWS\System32\”目录下;在“开始→运行”中键入“regsvr32 RealMediaSplitter.ax”,点击“确定”即可。接着下载解码器,如Real Alternative,安装后就能用WMP播放RM格式的影音文件了。
    七、让WMP9的播放器出现财富论坛lonelv.lun123.com
    有些音乐网页的在线点歌需要用到Media Player,有的朋友明明安装了WMP9,但在线听音乐却只看到枯燥的WMP6播放器面板,想让漂亮的WMP9面板出现,当然没问题的。财富论坛lonelv.lun123.com
    常见问题的操作系统多数WIN 
    98,先关闭IE,再在“开始→运行”中键入“regsvr32 wmpdxm.dll”,点击“确定”即可。财富论坛lonelv.lun123.com
    八、解决打开系统功能时无反应regsvr32 shdocvw.dll
    作用:
    有时从开始菜单里点击XP系统的搜索功能、帮助和支持或管理工具等,但就是无任何反应,这是它们的打开方式缺少关联,所以我们只要用regsvr32注册它们需要调用的动态连接库文件就行了。财富论坛lonelv.lun123.com
    九、添加
    /删除程序打不开了regsvr32 appwiz.cpl 财富论坛lonelv.lun123.com
    regsvr32 mshtml.dll 财富论坛lonelv.lun123.com
    regsvr32 jscript.dll 
    regsvr32 msi.dll 
    regsvr32 
    "c:\program files\common files\system\ole db\oledb32.dll"
    regsvr32 
    "c:\program files\common files\system\ado\msado15.dll"财富论坛lonelv.lun123.com
    regsvr32 mshtmled.dll 
    regsvr32 
    /i shdocvw.dll
    regsvr32 
    /i shell32.dll
    作用:
    当打开控制面板中的添加
    /删除程序时,双击它的图标后无反应,或者打开后自动关闭了,尝试使用以上命令可以解决。财富论坛lonelv.lun123.com
    十、XP的用户帐户打不开regsvr32 nusrmgr.cpl
    regsvr32 mshtml.dll
    regsvr32 jscript.dll
    regsvr32 
    /i shdocvw.dll
    十一、防范网络脚本病毒有新招
    regsvr32 
    /u scrrun.dll 禁用FSO对象
    regsvr32 scrrun.dll 使用FSO对象财富论坛lonelv.lun123.com
    十二、解决Windows无法在线升级的问题regsvr32 wupdinfo.dll
    以下症状我把它称作IE的活动脚本漏洞,虽然这两个命令能修复,但治标不治本,我建议遇到此问题的朋友到微软网站进行IE安全更新,即打漏洞补丁。
    regsvr32 jscript.dll财富论坛lonelv.lun123.com
    regsvr32 vbscript.dll
    作用:
    1、跟上面讲的修复IE浏览器方法配合使用(可以不配),可以很好的解决浏览某些网页无法正常显示和功能不正常,如:
    a.不显示某些验证码
    b.不显示某些动态图片
    c.不显示某些论坛的帖子列表
    d.论坛快速跳转功能无用
    e.论坛发贴时按Ctrl
    +Enter提交无反应财富论坛lonelv.lun123.com
    2、修复个别窗口空白,如XP的‘搜索’功能的搜索助理操作面板空白、系统还原页面空白和用户帐户页面空白等。(可修复把握度100%)
    3、解决windows media player 9或以上版本打开时提示‘出现内部应用程序错误’。(可修复把握度100%)财富论坛lonelv.lun123.com
    4、可以修复win 2000的‘添加/删除程序’打开后一片空白。(可修复把握度99%)
    5、解决win 2000以WEB方式查看Program Files文件夹和Winnt文件夹时看不到任何文件,以及‘控制面板’的图标跑到左边去的问题。财富论坛lonelv.lun123.com
    6、解决网页上网际快车的右键菜单功能无法使用。财富论坛lonelv.lun123.com
    在网站中,当右键点某个‘下载连接’时,会弹出菜单,选择‘使用网际快车下载’会再弹出FLASHGET的下载任务页面,如果发现该功能无反应,那就可能是这个原因:原来这项菜单是调用了FLASHGET目录下的jc_link.htm文件,这个文件是用VB语言编写的,所以其作用丢失是动态连接库vbscript.dll没有注册和调用到。财富论坛lonelv.lun123.com


    转义字符的应用
    本想在文件夹下生成一个文件并且写入内容.但要求是内容要用
    ""双引号括起来.

    在C#代码里怎么实现呢
    ?

    今天得知了结果.

    文件中要写入的内容为: regsvr32.exe  
    "\test\xxx.ocx"

    C#代码:

    方法1:

    string str = "regsvr32.exe \"\\test\\xxx.ocx\"";

    方法2:

    @"regsvr32.exe """ +  Application.StartupPath + @"\xxx.ocx""";

  • 相关阅读:
    随笔 祝我快乐
    .NET设计模式单件模式(Singleton Pattern)
    随笔 缘分
    随笔 雨季
    数据库设计中的小经验
    一个字节造成的巨大性能差异——SQL Server存储结构
    随笔 淡淡的幸福
    用LINQ还是NHibernate?
    随笔 风筝
    FreeStyle Wishes
  • 原文地址:https://www.cnblogs.com/wequst/p/1419606.html
Copyright © 2020-2023  润新知