• 注册
  • 关于作者
    企业认证:趣记站长
    关注 6 粉丝 4 喜欢 9 内容 992
    江西省·南昌市
    聊天 送礼
    • 查看作者
    • ASP远程注册自己的组件

      把asp程序作成dll很多好处,但是有一点,该dll必须注册才能在asp中调用。如果是自己的服务器那还好,但如果是租用的虚拟服务器,就没办法使用了。

      怎样在远程主机上注册我们的dll呢?在服务器端使用Shell!!!

      让我们先将自己的dll文件通过ftp或http上传到服务器上,然后作一个asp程序,

      Web程序中网页间数据传递方法小结
      ASP错误处理,ASP网站防范黑客技巧,巧用ASP技术保护DHTML源代码,用ASP取出HTML里面的图片地址的函数,ASP实现网页打开任何类型文件都保存,ASP木马Webshell安全解决办案,几招让你的网站免受采集之苦,ASP使用MYSQL数据库全攻略,Ad Rotator 组件参考,在Asp中使用存储过程数值类型值,asp防止同时登陆的问题,使用ASP重启服务器,在ASP程序中实现数据库事务控制,深入理解ASP中FSO的神奇功能,Asp中一些FSO方面的函数,用ASP编程实现网络内容快速查找,ASP实现文件直接下载,Adodb.Stream 组件的使用说明,全国省市县无刷新多级关联菜单,ASP上两个防止SQL注入式攻击Function
      ASP

      调用WScript.Shell来  执行regsvr32命令:

        Set oShell = CreateObject ("WScript.Shell")

        oShell.Run "c:\WINNT\system32\regsvr32.exe /s d:\xxx.dll", 0, False

      当然如果对方的服务器安全搞的很好的话,这个代码也许就不能用了,但不管怎么样,学习一下  也是好的,:)

      在这里也要提醒那些出租空间的朋友,你的服务器是否限制了使用WScript.Shell的权限?还是小心为妙

      完整代码如下,保存为.asp即可使用:

        <% 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>Regsvr32.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>Regsvr Functions</LEGEND>

        Insert Path to DLL Directory<BR>

        <INPUT TYPE=TEXT NAME="frmFolderPath" VALUE="<%=frmFolderPath%>"><BR>

        <INPUT TYPE=SUBMIT NAME=btnFileList VALUE="Build File List"><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>Folder ( " & strRoot & " ) Not Found.")

        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)    '通过fso列举所有的dll和ocx文件

        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

        %>

      Web程序中网页间数据传递方法小结
      ASP错误处理,ASP网站防范黑客技巧,巧用ASP技术保护DHTML源代码,用ASP取出HTML里面的图片地址的函数,ASP实现网页打开任何类型文件都保存,ASP木马Webshell安全解决办案,几招让你的网站免受采集之苦,ASP使用MYSQL数据库全攻略,Ad Rotator 组件参考,在Asp中使用存储过程数值类型值,asp防止同时登陆的问题,使用ASP重启服务器,在ASP程序中实现数据库事务控制,深入理解ASP中FSO的神奇功能,Asp中一些FSO方面的函数,用ASP编程实现网络内容快速查找,ASP实现文件直接下载,Adodb.Stream 组件的使用说明,全国省市县无刷新多级关联菜单,ASP上两个防止SQL注入式攻击Function
      ASP

    • 0
    • 0
    • 0
    • 75
    • 单栏布局 侧栏位置: