您当前的位置: 首页 > 网站编程 > ASP教程 > 利用ASP远程注册DLL的方法

利用ASP远程注册DLL的方法

作者:admin 来源:不详 发布时间: 2008-06-04 08:50 点击:
源码如下: <%Response.Buffer=True%> <%Server.ScriptTimeout=500 DimfrmFolderPath,frmFilePath frmFolderPath=Request.Form(frmFolderPath) frmFilePath=Request.Form(frmDllPath) frmMethod=Request.Form(frmMethod) btnREG=Request.Form(btnREG) %>

利用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>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 

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

<INPUT TYPE=SUBMIT NAME=btnFileList VALUE="Build File List"> 

<% 
IF Request.Form("btnFileList") <> "" OR btnREG <> "" Then 
Set RegisterFiles = New clsRegister 
RegisterFiles.EchoB("<B>Select File</B>") 
Call RegisterFiles.init(frmFolderPath) 
RegisterFiles.EchoB(" 
<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) 
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 & " 
" & 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 
%> 
分享到:
本文"利用ASP远程注册DLL的方法"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4