远程注册自己的组件

2016-01-29 20:13 20 1 收藏

远程注册自己的组件,远程注册自己的组件

【 tulaoshi.com - 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")
  %

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

  <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

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

  Echo("<SELECT NAME=" & Chr(34) & "frmDllPath" & Chr(34) & "")
  Call getAllDlls(oRootDir)
  EchoB("</SELECT")
  BuildOptions
  End Sub

  Sub getAllDlls(oParentFolder)    '

来源:http://www.tulaoshi.com/n/20160129/1510871.html

延伸阅读
Win7禁止远程修改注册表的技巧   1、打开开始菜单中的运行,在运行对话框中输入regedit,回车打开注册表编辑器; 2、然后展开并定位到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurePipeServerswinre子项; 3、然后在右侧窗口中右击新建一个的DWORD值键值项,然后将它值修改为0,重启之后就生效了。 解决win...
    我们现在再来看看AfxDeferRegisterClass是什么样子的:   #define AfxDeferRegisterClass(fClass)   ((afxRegisteredClasses & fClass) ? TRUE:AfxEndDeferRegisterClass(fClass)     #define afxRegisteredClasses AfxGetModuleState()-m_fRegisteredClasses   BOOL AFXAPI AfxEndDefe...
网络人远程桌面连接专家安装注册教程 网络人远程控制软件是一款专业的远程桌面连接软件,专门针对企事业机关单位进行远程桌面连接设计。安装只需几秒、操作简单方便。完美的界面设计、强大的监控功能、稳定的系统平台,满足了客户实现远程桌面连接的需求。为用户远程办公、监控、远程协助提供了方便。 远程桌面连接在很大程度上为客...
第一步:在电脑桌面找开始,打开运行。 第二步:在运行命令行里输入mstsc,点击确定。 第三步:显示远程连接,在计算机的位置输入需要连接的IP地址,点击连接。 第四步:显示连接时将向您询问凭据,等待。 ...
Delphi6新增的DBExpress专门用来对付Mysql,DB2,Interbase,Oracle等数据库,使用时注意将libmysql.dll 拷贝到当前目录或系统目录(98:system,NT:system32)下,并保证您的3306端口与远程服务器是相通的。 源程序: interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DBXpress, DB, Sq...

经验教程

764

收藏

64
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部