网络编程
位置:首页>> 网络编程>> Asp编程>> asp如何远程注册DLL

asp如何远程注册DLL

  发布时间:2010-06-16 09:58:00 

标签:dll,注册,asp

如何远程注册DLL?
试试下面的代码:

<% Response.Buffer = True %>
<% Server.ScriptTimeout = 500 
    Dim frmFolderPath, frmFilePath
    frmFolderPath = Request.Form("frmFolderPath")
    frmFilePath = Request.Form("frmDllPath")
    frmMethod = Request.Form("frmMethod")
    btnREG = Request.Form("btnREG")
%>
<HTML>
<HEAD>
    <TITLE>远程注册DLL - asp之家</TITLE>
    <STYLE TYPE="TEXT/CSS">
    .Legend {FONT-FAMILY: veranda; FONT-SIZE: 14px; FONT-WEIGHT: bold; COLOR: blue}
    .FS {FONT-FAMILY: veranda; FONT-SIZE: 12px; BORDER-WIDTH: 4px; BORDER-COLOR: green;
        MARGIN-LEFT:2px; MARGIN-RIGHT:2px}
    TD {MARGIN-LEFT:6px; MARGIN-RIGHT:6px; PADDING-LEFT:12px; PADDING-RIGHT:12px}
    </STYLE>
</HEAD>
<BODY>
<FORM NAME="regForm" METHOD="POST">
<TABLE BORDER=0 CELLSPACING=6 CELLPADDING=6 MARGINWIDTH=6>
<TR>
    <TD VALIGN=TOP>
    <FIELDSET ID=FS1 NAME=FS1 CLASS=FS>
    <LEGEND CLASS=Legend>注册DLL</LEGEND>
    敲入到DLL目录的路径<BR>
    <INPUT TYPE=TEXT NAME="frmFolderPath" VALUE="<%=frmFolderPath%>"><BR>
    <INPUT TYPE=SUBMIT NAME=btnFileList VALUE="创建文件列表"><BR>
<%  
    IF Request.Form("btnFileList") <> "" OR btnREG <> "" Then
        Set RegisterFiles = New clsRegister
            RegisterFiles.EchoB("<B>Select File</B>")
            Call RegisterFiles.init(frmFolderPath)
            RegisterFiles.EchoB("<BR><INPUT TYPE=SUBMIT NAME=btnREG VALUE=" & Chr(34) _
            & "REG/UNREG" & Chr(34) & ">")
        IF Request.Form("btnREG") <> "" Then
            Call RegisterFiles.Register(frmFilePath, frmMethod)
        End IF
        Set RegisterFiles = Nothing
    End IF
%>
    </FIELDSET>
    </TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
<%
Class clsRegister
    Private m_oFS    
    
    Public Property Let oFS(objOFS)
        m_oFS = objOFS
    End Property
        
    Public Property Get oFS()
        Set oFS = Server.CreateObject("Scripting.FileSystemObject")
    End Property
  
    Sub init(strRoot) 'Root to Search (c:, d:, e:)
    Dim oDrive, oRootDir
        IF oFS.FolderExists(strRoot) Then
            IF Len(strRoot) < 3 Then 'Must Be a Drive
                Set oDrive = oFS.GetDrive(strRoot)
                Set oRootDir = oDrive.RootFolder
            Else
                Set oRootDir = oFS.GetFolder(strRoot)
            End IF
        Else
            EchoB("<B>噢,文件夹( " & strRoot & " )没找到!")
            Exit Sub
        End IF
        setRoot = oRootDir
        
        Echo("<SELECT NAME=" & Chr(34) & "frmDllPath" & Chr(34) & ">")
            Call getAllDlls(oRootDir)
        EchoB("</SELECT>")
        BuildOptions
    End Sub
    
    Sub getAllDlls(oParentFolder)
    Dim oSubFolders, oFile, oFiles
        Set oSubFolders = oParentFolder.SubFolders
        Set opFiles = oParentFolder.Files
        
        For Each oFile in opFiles
            IF Right(lCase(oFile.Name), 4) = ".dll" OR Right(lCase(oFile.Name), 4) = ".ocx" Then
                Echo("<OPTION VALUE=" & Chr(34) & oFile.Path & Chr(34) & ">" _
                & oFile.Name & "</Option>")
            End IF
        Next
        
        On Error Resume Next
        For Each oFolder In oSubFolders 'Iterate All Folders in Drive
            Set oFiles = oFolder.Files
            For Each oFile in oFiles
                IF Right(lCase(oFile.Name), 4) = ".dll" OR Right(lCase(oFile.Name), 4) = ".ocx" Then
                    Echo("<OPTION VALUE=" & Chr(34) & oFile.Path & Chr(34) & ">" _
                    & oFile.Name & "</Option>")
                End IF
            Next
            Call getAllDlls(oFolder)
        Next
        On Error GoTo 0
    End Sub
    Sub Register(strFilePath, regMethod)
    Dim theFile, strFile, oShell, exitcode
        Set theFile = oFS.GetFile(strFilePath)
        strFile = theFile.Path
        Set oShell = CreateObject ("WScript.Shell")
        IF regMethod = "REG" Then 'Register
            oShell.Run "c:\WINNT\system32\regsvr32.exe /s " & strFile, 0, False
            exitcode = oShell.Run("c:\WINNT\system32\regsvr32.exe /s " & strFile, 0, False)
              EchoB("regsvr32.exe exitcode = " & exitcode)
        Else 'unRegister
            oShell.Run "c:\WINNT\system32\regsvr32.exe /u/s " & strFile, 0, False
            exitcode = oShell.Run("c:\WINNT\system32\regsvr32.exe /u/s " & strFile, 0, False)
              EchoB("regsvr32.exe exitcode = " & exitcode)
        End IF
        
        Cleanup oShell
    End Sub
    
    Sub BuildOptions
        EchoB("Register: <INPUT TYPE=RADIO NAME=frmMethod VALUE=REG CHECKED>")
        EchoB("unRegister: <INPUT TYPE=RADIO NAME=frmMethod VALUE=UNREG>")
    End Sub
    
    Function Echo(str)
        Echo = Response.Write(str & vbCrLf)
    End Function
    
    Function EchoB(str)
        EchoB = Response.Write(str & "<BR>" & vbCrLf)
    End Function
    
    Sub Cleanup(obj)
        If isObject(obj) Then
            Set obj = Nothing
        End IF
    End Sub
    
    Sub Class_Terminate()
        Cleanup oFS
    End Sub
End Class
%>

0
投稿

猜你喜欢

  • 遵循Web标准的思想,网页要表现出一种亲和力。那么,针对残障用户来说,其“阅读”器可不能读取图像上传递的信息的。所以我们会采用一种Using
  • 本文中我们将通过一个例子来介绍SQL Server 2005的一个Bug,首先,在建立同义词链接Oracle的时候,我们会使用下面的语句:C
  • 以下所有代码全是在<head>...</head>之间,具体内容有:1,<title>…</tit
  • 在编程时你一定碰到过时间触发的事件,在VB中有timer控件,而ASP中没有,假如你要不停地查询数据库来等待一个返回结果的话,我想你一定知道
  • 在SQL Server 中,如果给表的一个字段设置了默认值,就会在系统表sysobjects中生成一个默认约束。如果想删除这个设置了默认值的
  • 现有问题当前的项目中包括一个6200万行、500多列的表。其中的数据来自SQL Server以外,它们到达的表中有一个标识主键,所有剩下的列
  • 最近接触到一个心理学方面的理论:心流理论。大意是一种个人精力完全投注在某件事情上的感觉。心流产生时会有高度的兴奋和充实感。其实也就是说人在进
  • 使用ENUM代替字符串类型有时候, 可以通过使用ENUM来代理常规的字符串类型。一个ENUM列能够存储65535个不同的字符串值,MySQL
  • “位置:首页 第一屏通栏  格式:jpg  尺寸:960*90 ……”在工作我们经常会接到这样的banner设计需求,由
  • 学习目的 接触验证控件 昨天介绍了SQL SERVER插入数据,但是我们省略了验证输入这一步。以前的做法是用语句逐个判断输入的正确性,如是否
  • 1,建立数据库文件cnbruce.mdb(不设计任何表)建立数据库的代码:<%  Option Explicit&
  • 最近在做学院的选课系统时,在分页上被卡壳了一下,因为需要用到排序,所以不能像以前一样用一个自动递增的字段作为主键,然后仅仅是对这个主键来做统
  • 维护是什么,维护就是修改,不断的修改,但是要保证你的html和css有清晰的版本界定,有扩展性,不要因为做的太死而重新去做这个页面。一个赚钱
  • 2007年1月,国务院 * 了中央&ldquo;一号文件&rdquo;,文件中对加快农业信息化建设有了更明确的部署,为新农村建
  • 以前的Sony Ericsson牌DVD影碟机坏掉了,上周到沃尔玛买了个philips的回来,于是又淘了一些DVD回来看。在使用遥控的时候忽
  •     Macromedia Dreamweaver MX 2004提供了更多功能强劲的可视化设计工具、应用开
  • 即使是简单的脚本语言,应用良好的模式可以得到非常“优美”的代码和较高的效率。尤其是对于交互要求较高的B/S系统,非常有必要用设计模式来优化代
  • 现在电子商务网站的设计,正面临着一系列的挑战,其中最主要的挑战是:我们尝试建立一种用户体验,来提高用户在线购物的可能性。为了对抗网上激烈的竞
  • javascript中要判断一个变量是否为array通常是比较困难的,因为var a = [];alert(t
  • 在网页设计中有一些通用的交互设计模式。网站导航各种各样的通用和大家熟知的设计模式,可以用来作为为网站创建有效地信息架构的基础。这篇指南涵盖了
手机版 网络编程 asp之家 www.aspxhome.com