65.9K
CodeProject 正在变化。 阅读更多。
Home

在远程主机上注册 DLL

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.44/5 (6投票s)

2002年7月31日

viewsIcon

81048

对于需要与远程 Web 服务器合作的程序员来说,注册 DLL 一直是一场噩梦。

引言

对于需要与远程 Web 服务器合作的程序员来说,注册 DLL 一直是一场噩梦。尤其是在具有自定义安全设置的服务器上,情况更加糟糕。每次都需要联系服务器管理员来注册/取消注册 DLL。

解决此问题的一个简单方法是使用 ASP 页面来注册/取消注册 DLL。此操作的关键是使用 Windows Scripting Host WshShell 类的 RUN 方法。

以下是一个简单的 ASP 页面,使用 run 方法注册 DLL。

<%
Dim strPageName
strPageName = "Reg.asp"
If Request.Form("SUBMIT") = "" Then
    Response.write "<CENTER><FORM ACTION=""" & strPageName & """ METHOD=POST>"
    Response.write "<INPUT TYPE=TEXT NAME=FILEPATH SIZE=120>Full Path/Filename "
    Response.write "to DLL to be registered/un registerd<BR>"
    Response.write "<INPUT TYPE=CHECKBOX NAME=ACTIONTYPE CHECKED>Check to "
    Response.write "Register; Uncheck to Unregister<BR>"
    Response.write "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT></CENTER>"
    Response.write "</FORM>"
Else
    Set objFileSystem = Server.CreateObject("Scripting.FileSystemObject")
    strPath = objFileSystem.GetSpecialFolder(1) & "\REGSVR32.EXE /s "
    Set objWshShell = CreateObject("WScript.Shell")
    strRun = "CMD /C " & strPath & " /u "
    If Request.Form("ACTIONTYPE")="on" Then strRun = "CMD /C " & strPath
    strReturn = objWshShell.Run(strRun & Request.Form("FILEPATH"), 1, True)  
    Set objFileSystem = Nothing
    Set objWshShell = Nothing
End If
%>

复制上面的整个脚本,包括 <% %> 脚本分隔符,将其粘贴到记事本中,并将其保存为服务器上的 "Reg.asp"。现在你只需要知道 DLL 的驱动器号、路径和名称即可。

© . All rights reserved.