仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 482|回复: 9
打印 上一主题 下一主题

[学习教程] ASP网站制作之经由过程ASP远程注册本人的组件

[复制链接]
小魔女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:57:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
由于ASP提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。把asp程序作成dll良多优点,可是有一点,该dll必需注册才干在asp中挪用。假如是本人的服务器那还好,但假如是租用的假造服务器,就没举措利用了。
如何在远程主机上注册我们的dll呢?在服务器端利用Shell!!!

让我们先将本人的dll文件经由过程ftp或http上传到服务器上,然后作一个asp程序,挪用WScript.Shell来实行regsvr32命令:
SetoShell=CreateObject("WScript.Shell")
oShell.Run"c:WINNTsystem32egsvr32.exe/sd:xxx.dll",0,False
固然假如对方的服务器平安弄的很好的话,这个代码大概就不克不及用了,但不论怎样,进修一下也是好的,:)
在这里也要提示那些出租空间的伴侣,你的服务器是不是限定了利用WScript.Shell的权限?仍是当心为妙

完全代码以下,保留为.asp便可利用:

<%Response.Buffer=True%>
<%Server.ScriptTimeout=500
DimfrmFolderPath,frmFilePath

frmFolderPath=Request.Form("frmFolderPath")
frmFilePath=Request.Form("frmDllPath")
frmMethod=Request.Form("frmMethod")
btnREG=Request.Form("btnREG")
%>

<HTML>
<HEAD>
<TITLE>Regsvr32.asp</TITLE>
<STYLETYPE="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>
<FORMNAME="regForm"METHOD="POST">
<TABLEBORDER=0CELLSPACING=6CELLPADDING=6MARGINWIDTH=6>
<TR>
<TDVALIGN=TOP>
<FIELDSETID=FS1NAME=FS1CLASS=FS>
<LEGENDCLASS=Legend>RegsvrFunctions</LEGEND>
InsertPathtoDLLDirectory<BR>
<INPUTTYPE=TEXTNAME="frmFolderPath"VALUE="<%=frmFolderPath%>"><BR>
<INPUTTYPE=SUBMITNAME=btnFileListVALUE="BuildFileList"><BR>
<%
IFRequest.Form("btnFileList")""ORbtnREG""Then
SetRegisterFiles=NewclsRegister
RegisterFiles.EchoB("<B>SelectFile</B>")
CallRegisterFiles.init(frmFolderPath)
RegisterFiles.EchoB("<BR><INPUTTYPE=SUBMITNAME=btnREGVALUE="&Chr(34)_
&"REG/UNREG"&Chr(34)&">")
IFRequest.Form("btnREG")""Then
CallRegisterFiles.Register(frmFilePath,frmMethod)
EndIF
SetRegisterFiles=Nothing
EndIF
%>
</FIELDSET>
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
<%
ClassclsRegister

Privatem_oFS

PublicPropertyLetoFS(objOFS)
m_oFS=objOFS
EndProperty

PublicPropertyGetoFS()
SetoFS=Server.CreateObject("Scripting.FileSystemObject")
EndProperty


Subinit(strRoot)RoottoSearch(c:,d:,e:)
DimoDrive,oRootDir
IFoFS.FolderExists(strRoot)Then
IFLen(strRoot)<3ThenMustBeaDrive
SetoDrive=oFS.GetDrive(strRoot)
SetoRootDir=oDrive.RootFolder
Else
SetoRootDir=oFS.GetFolder(strRoot)
EndIF
Else
EchoB("<B>Folder("&strRoot&")NotFound.")
ExitSub
EndIF
setRoot=oRootDir

Echo("<SELECTNAME="&Chr(34)&"frmDllPath"&Chr(34)&">")
CallgetAllDlls(oRootDir)
EchoB("</SELECT>")
BuildOptions
EndSub

SubgetAllDlls(oParentFolder)经由过程fso枚举一切的dll和ocx文件
DimoSubFolders,oFile,oFiles
SetoSubFolders=oParentFolder.SubFolders
SetopFiles=oParentFolder.Files

ForEachoFileinopFiles
IFRight(lCase(oFile.Name),4)=".dll"ORRight(lCase(oFile.Name),4)=".ocx"Then
Echo("<OPTIONVALUE="&Chr(34)&oFile.Path&Chr(34)&">"_
&oFile.Name&"</Option>")
EndIF
Next

OnErrorResumeNext
ForEachoFolderInoSubFoldersIterateAllFoldersinDrive
SetoFiles=oFolder.Files
ForEachoFileinoFiles
IFRight(lCase(oFile.Name),4)=".dll"ORRight(lCase(oFile.Name),4)=".ocx"Then
Echo("<OPTIONVALUE="&Chr(34)&oFile.Path&Chr(34)&">"_
&oFile.Name&"</Option>")
EndIF
Next
CallgetAllDlls(oFolder)
Next
OnErrorGoTo0
EndSub

SubRegister(strFilePath,regMethod)
Dim</p>大家可以自己去看一看.可以说看得想呕吐.以前有次下了个动网来看.里面连基本内置函数的保护措施(函数没防御性)都没有.难怪经常补这个补那个了.可能现在.NET版会好点吧
老尸 该用户已被删除
沙发
发表于 2015-1-17 06:17:06 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
柔情似水 该用户已被删除
板凳
发表于 2015-1-20 13:23:12 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
再见西城 该用户已被删除
地板
发表于 2015-1-29 07:46:19 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
蒙在股里 该用户已被删除
5#
发表于 2015-2-1 19:26:20 来自手机 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
兰色精灵 该用户已被删除
6#
发表于 2015-2-7 14:14:39 | 只看该作者
运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
若天明 该用户已被删除
7#
发表于 2015-2-22 04:52:38 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
莫相离 该用户已被删除
8#
发表于 2015-3-6 23:05:26 | 只看该作者
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
变相怪杰 该用户已被删除
9#
发表于 2015-3-13 22:09:45 | 只看该作者
那么,ASP.Net有哪些改进呢?
分手快乐 该用户已被删除
10#
发表于 2015-3-20 20:38:17 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 09:34

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表