利用ASP远程注册DLL的方法

 网站首页 > 电脑技术 > 远程脚本 asp技术 网络编程

利用ASP远程注册DLL的方法 内容简介:

        外真是聪明,这个方法也想得到,有兴趣的不妨试试,但是如果对方的服务器安全搞的很好的话,这个代码也许就不能用了,但不管怎么样,学习一下也是好的,:) <% Response.Buffer = True %><% Server.ScriptTimeou
利用ASP远程注册DLL的方法 祥细内容:
外真是聪明,这个方法也想得到,有兴趣的不妨试试,但是如果对方的服务器安全搞的很好的话,这个代码也许就不能用了,但不管怎么样,学习一下也是好的,:)

&lt;% Response.Buffer = True %&gt;
&lt;% Server.ScriptTimeout = 500
Dim frmFolderPath, frmFilePath

frmFolderPath = Request.Form("frmFolderPath")
frmFilePath = Request.Form("frmDllPath")
frmMethod = Request.Form("frmMethod")
btnREG = Request.Form("btnREG")
%&gt;

&lt;HTML&gt;
&lt;HEAD&gt;
&lt;TITLE&gt;Regsvr32.asp&lt;/TITLE&gt;
&lt;STYLE TYPE="TEXT/CSS"&gt;
.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}
&lt;/STYLE&gt;
&lt;/HEAD&gt;

&lt;BODY&gt;
&lt;FORM NAME="regForm" METHOD="POST"&gt;
&lt;TABLE BORDER=0 CELLSPACING=6 CELLPADDING=6 MARGINWIDTH=6&gt;
&lt;TR&gt;
&lt;TD VALIGN=TOP&gt;
&lt;FIELDSET ID=FS1 NAME=FS1 CLASS=FS&gt;
&lt;LEGEND CLASS=Legend&gt;Regsvr Functions&lt;/LEGEND&gt;
Insert Path to DLL Directory&lt;BR&gt;
&lt;INPUT TYPE=TEXT NAME="frmFolderPath" VALUE="&lt;%=frmFolderPath%&gt;"&gt;&lt;BR&gt;
&lt;INPUT TYPE=SUBMIT NAME=btnFileList VALUE="Build File List"&gt;&lt;BR&gt;
&lt;%
IF Request.Form("btnFileList") &lt;&gt; "" OR btnREG &lt;&gt; "" Then
Set RegisterFiles = New clsRegister
RegisterFiles.EchoB("&lt;B&gt;Select File&lt;/B&gt;")
Call RegisterFiles.init(frmFolderPath)
RegisterFiles.EchoB("&lt;BR&gt;&lt;INPUT TYPE=SUBMIT NAME=btnREG VALUE=" & Chr(34) _
& "REG/UNREG" & Chr(34) & "&gt;")
IF Request.Form("btnREG") &lt;&gt; "" Then
Call RegisterFiles.Register(frmFilePath, frmMethod)
End IF
Set RegisterFiles = Nothing
End IF
%&gt;
&lt;/FIELDSET&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TABLE&gt;
&lt;/FORM&gt;
&lt;/BODY&gt;
&lt;/HTML&gt;
&lt;%
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) &lt; 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("&lt;B&gt;Folder ( " & strRoot & " ) Not Found.")
Exit Sub
End IF
setRoot = oRootDir

Echo("&lt;SELECT NAME=" & Chr(34) & "frmDllPath" & Chr(34) & "&gt;")
Call getAllDlls(oRootDir)
EchoB("&lt;/SELECT&gt;")
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("&lt;OPTION VALUE=" & Chr(34) & oFile.Path & Chr(34) & "&gt;" _
& oFile.Name & "&lt;/Option&gt;")
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("&lt;OPTION VALUE=" & Chr(34) & oFile.Path & Chr(34) & "&gt;" _
& oFile.Name & "&lt;/Option&gt;")
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: &lt;INPUT TYPE=RADIO NAME=frmMethod VALUE=REG CHECKED&gt;")
EchoB("unRegister: &lt;INPUT TYPE=RADIO NAME=frmMethod VALUE=UNREG&gt;")
End Sub

Function Echo(str)
Echo = Response.Write(str & vbCrLf)
End Function

Function EchoB(str)
EchoB = Response.Write(str & "&lt;BR&gt;" & 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
%&gt;


更新时间:2005-5-26 11:17:16 查看次数: 添加人:异域风情
下载: 采集信息

关键字: ASP远程注册DLL ASP远程注册组件 远程脚本 asp技术 网络编程 

相关连接: 利用ASP远程注册DLL的方法  客户端用ASP+rds+VBA参生报表(高级篇)  利用ASP在客户端注册DLL文件  一个例子:从新浪提取上海天气的vbs  我在桌面上删帖子  将你的网站设置为客户的信任站点--VB方案  WSH 直接将查询数据结果生成 EXCEL 表  如何在服务器端调用winzip命令行对上传的多个文件打包  利用 WSH 作定时工作流程  Vbscript类型转换函数  ASP取得图片大小代码  用VB创建FTP组件(put)  一个新的JMail(4.3版本)发送代码  精彩OUTLOOK 2000组件放送  不用询问关闭一个独立的窗口代码  一种在父窗口中得知window.open()出的子窗口关闭事件 
E路同行 版权所有; 2002-2005 Xiaoqi.net! Inc. 保留所有权利。