通过ASP远程注册自己的组件

张秀琴99

张秀琴99

2016-01-29 18:42

通过ASP远程注册自己的组件,通过ASP远程注册自己的组件
 

把asp程序作成dll很多好处,但是有一点,该dll必须注册才能在asp中调用。如果是自己的服务器那还好,但如果是租用的虚拟服务器,就没办法使用了。
怎样在远程主机上注册我们的dll呢?在服务器端使用Shell!!!

让我们先将自己的dll文件通过ftp或http上传到服务器上,然后作一个asp程序,调用WScript.Shell来执行regsvr32命令:
Set oShell = CreateObject ("WScript.Shell")
oShell.Run "c:WINNTsystem32regsvr32.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
<TITLERegsvr32.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=LegendRegsvr 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("<BSelect 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("<BFolder ( " & strRoot & " ) Not Found.")
Exit Sub
End IF
setRoot = oRootDir

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/asp/)

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

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/asp/)

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("<OP

展开更多 50%)
分享

猜你喜欢

通过ASP远程注册自己的组件

ASP
通过ASP远程注册自己的组件

远程注册自己的组件

ASP
远程注册自己的组件

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

利用ASP远程注册DLL的方法

ASP
利用ASP远程注册DLL的方法

ASP ActiveX 组件

ASP
ASP ActiveX 组件

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

asp组件上传

ASP
asp组件上传

ASP 组件指南

ASP
ASP 组件指南

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

借助组件使用asp连接informix全方案

借助组件使用asp连接informix全方案

购物车中数据的存放方式

购物车中数据的存放方式
下拉加载更多内容 ↓