会员登陆  支付方式  联系我们  在线客服  网站地图       
首页 关于域浪 互联网数据中心业务、主机托管、主机租用、机架租用、带宽租用、机房介绍、机房对比、CCN网络加速 adsl专线、深圳adsl专线 虚拟主机、域名注册、数据库、企业邮局、动态域名 网络安全、网络临近平台、安全服务、防火去墙租用、安全产品、域浪抗DDOS防火墙、NetScreen防火墙 技术支持  
   当前位置:首页 >> 技术支持 >> ASP编程技巧 >> ASP编程技巧大全[2]
 
精华文章
    ASP的特点:  
    什么是ASP——解析(4...  
    什么是ASP——解析(3...  
    什么是ASP——解析(2...  
    什么是ASP——解析(1...  
    ASP编程技巧大全[2]  
    ASP编程技巧大全[1]  
    利用ASP存取各种常用类...  
    利用ASP存取各种常用类...  
    利用ASP存取各种常用类...  
    利用ASP存取各种常用类...  
    ASP教程:第十九篇 最...  
    ASP教程:第十八篇 堵...  
    ASP教程:第十七篇 AD...  
    ASP教程:第十六篇 其...  
    ASP教程:第十五篇 常...  
    ASP教程:第十四篇 Ac...  
    ASP教程:第十三篇 数...  
    ASP教程:第十二篇 数...  
    ASP教程:第十一篇 AS...  
    ASP教程:第十篇 Glob...  
    ASP教程:第九篇 ASP内...  
    ASP教程:第八篇 ASP内...  
    ASP教程:第七篇 ASP内...  
    ASP教程:第六篇 ASP脚...  
    ASP教程:第五篇 脚本...  
    ASP教程:第四篇 ASP脚...  
    ASP教程:第三篇 ASP基...  
  更多>>  
   ASP编程技巧
 ASP编程技巧大全[2]
利用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<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("<B>Select 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("<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 & "<BR>" & 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

%>



利用CDONTS发送邮件的ASP函数

<%

''Last Updated By Recon On 05/14/2001

''On Error Resume Next



''利用CDONTS组件在Win2k上发送邮件



''发送普通邮件

SendMail "admin@ny.com", "iamchn@263.net", "Normal Mail!", "Please check the attatchment!", 2, 0, "C:\Love.txt"



''发送HTML邮件

Dim m_fso, m_tf

Dim m_strHTML



Set m_fso = Server.CreateObject("SCRIPTING.FILESYSTEMOBJECT")

Set m_tf = m_fso.OpenTextFile("C:\Mail.htm", 1)

m_strHTML = m_tf.ReadAll



''Write m_strHTML

Set m_tf = Nothing

Set m_fso = Nothing



SendMail "admin@ny.com", "iamchn@263.net", "HTML Mail!", m_strHTML, 2, 1, Null



''参数说明

''strFrom : 发件人Email

''strTo : 收件人Email

''strSubject : 信件主题

''strBody : 信件正文

''lngImportance : 信件重要性

'' : 0 - 低重要性

'' : 0 - 中等重要性(默认)

'' : 0 - 高重要性

''lngAType : 信件格式

'' : 为1时将邮件正文作为HTML(此时可以发送HTML邮件)

''strAttach : 附件的路径

Sub SendMail(strFrom, strTo, strSubject, strBody, lngImportance, lngAType, strAttach)

Dim objMail



Set objMail = Server.CreateObject("CDONTS.NEWMAIL")

With objMail



.From = strFrom

.To = strTo

.Subject = strSubject

.Body = strBody

.Importance = lngImportance



If lngAType = 1 Then

.BodyFormat = 0

.MailFormat = 0

End If



If IsEmpty(strAttach) = False And IsNull(strAttach) = False Then

.AttachFile strAttach

End If



.Send

End With

Set objMail = Nothing

End Sub

%>

处理驱动器和文件夹



    使用 FileSystemObject (FSO) 对象模式,可以有计划地处理驱动器和文件夹,就像在 Windows 资源管理器中交互式地处理它们一样。可以复制和移动文件夹,获取有关驱动器和文件夹的信息,等等。



获取有关驱动器的信息 

可以用 Drive 对象来获得有关各种驱动器的信息,这些驱动器是实物地或通过网络连接到系统上的。它的属性可以用来获得下面的信息内容:



驱动器的总容量,以字节为单位(TotalSize 属性) 

驱动器的可用空间是多少,以字节为单位(AvailableSpace 或 FreeSpace 属性) 

哪个号被赋给了该驱动器(DriveLetter 属性) 

驱动器的类型是什么,如可移动的、固定的、网络的、CD-ROM 或 RAM 磁盘(DriveType 属性) 

驱动器的序列号(SerialNumber 属性) 

驱动器使用的文件系统类型,如 FAT、FAT32、NTFS 等等(FileSystem 属性) 

驱动器是否可以使用(IsReady 属性) 

共享和/或卷的名字(ShareName 和 VolumeName 属性) 

驱动器的路径或根文件夹(Path 和 RootFolder 属性) 

请考察示例代码,来领会如何在 FileSystemObject 中使用这些属性。



Drive 对象用法示例 

使用 Drive 对象来收集有关驱动器的信息。在下面的代码中,没有对实际的 Drive 对象的引用;相反,使用 GetDrive 方法来获得现有 Drive 对象的引用(在这个例子中就是 drv)。

下面示例示范了如何在 VBScript 中使用 Drive 对象: 



Sub ShowDriveInfo(drvPath)

Dim fso, drv, s

Set fso = CreateObject("Scripting.FileSystemObject")

Set drv = fso.GetDrive(fso.GetDriveName(drvPath))

s = "Drive " & UCase(drvPath) & " - "

s = s & drv.VolumeName & "<br/>"

s = s & "Total Space: " & FormatNumber(drv.TotalSize / 1024, 0)

s = s & " Kb" & "<br/>"

s = s & "Free Space: " & FormatNumber(drv.FreeSpace / 1024, 0)

s = s & " Kb" & "<br/>"

Response.Write s

End Sub



下面的代码说明在 JScript 中实现同样的功能: 

function ShowDriveInfo1(drvPath)

{

var fso, drv, s ="";

fso = new ActiveXObject("Scripting.FileSystemObject");

drv = fso.GetDrive(fso.GetDriveName(drvPath));

s += "Drive " + drvPath.toUpperCase()+ " - ";

s += drv.VolumeName + "<br/>";

s += "Total Space: " + drv.TotalSize / 1024;

s += " Kb" + "<br/>"; 

s += "Free Space: " + drv.FreeSpace / 1024;

s += " Kb" + "<br/>";

Response.Write(s);

}



处理文件夹 

在下面的表中,描述了普通的文件夹任务和执行它们的方法。 

任务 方法 

创建文件夹。 FileSystemObject.CreateFolder 

删除文件夹。 Folder.Delete 或 FileSystemObject.DeleteFolder 

移动文件夹。 Folder.Move 或 FileSystemObject.MoveFolder 

复制文件夹。 Folder.Copy 或 FileSystemObject.CopyFolder 

检索文件夹的名字。 Folder.Name 

如果文件夹在驱动器上存在,则找出它。 FileSystemObject.FolderExists 

获得现有 Folder 对象的实例。 FileSystemObject.GetFolder 

找出文件夹的父文件夹名。 FileSystemObject.GetParentFolderName 

找出系统文件夹的路径。 FileSystemObject.GetSpecialFolder 



请考察示例代码,来看看在 FileSystemObject 中使用了多少种这些的方法和属性。



下面的示例示范了如何在 VBScript 中使用 Folder 和 FileSystemObject 对象,来操作文件夹和获得有关它们的信息:



Sub ShowFolderInfo()

Dim fso, fldr, s

'' 获得 FileSystemObject 的实例。

Set fso = CreateObject("Scripting.FileSystemObject")

'' 获得 Drive 对象。

Set fldr = fso.GetFolder("c:")

'' 打印父文件夹名字。

Response.Write "Parent folder name is: " & fldr & "<br/>"

'' 打印驱动器名字。

Response.Write "Contained on drive " & fldr.Drive & "<br/>"

'' 打印根文件名。

If fldr.IsRootFolder = True Then

Response.Write "This is the root folder." & ""<br/>"<br/>"

Else

Response.Write "This folder isn''t a root folder." & "<br/><br/>" 

End If

'' 用 FileSystemObject 对象创建新的文件夹。

fso.CreateFolder ("C:\Bogus")

Response.Write "Created folder C:\Bogus" & "<br/>"

'' 打印文件夹的基本名字。

Response.Write "Basename = " & fso.GetBaseName("c:\bogus") & "<br/>"

'' 删除新创建的文件夹。

fso.DeleteFolder ("C:\Bogus")

Response.Write "Deleted folder C:\Bogus" & "<br/>"

End Sub



下面的示例显示如何在 JScript 中使用 Folder 和 FileSystemObject 对象: 

function ShowFolderInfo()

{

var fso, fldr, s = "";

// 获得 FileSystemObject 的实例。

fso = new ActiveXObject("Scripting.FileSystemObject");

// 获得 Drive 对象。

fldr = fso.GetFolder("c:");

// 打印父文件夹名。

Response.Write("Parent folder name is: " + fldr + "<br/>");

// 打印驱动器名字。

Response.Write("Contained on drive " + fldr.Drive + "<br/>");

// 打印根文件名。

if (fldr.IsRootFolder)

Response.Write("This is the root folder.");

else

Response.Write("This folder isn''t a root folder.");

Response.Write("<br/><br/>");

// 用 FileSystemObject 对象创建新的文件夹。

fso.CreateFolder ("C:\\Bogus");

Response.Write("Created folder C:\\Bogus" + "<br/>");

// 打印文件夹的基本名。

Response.Write("Basename = " + fso.GetBaseName("c:\\bogus") + "<br/>");

// 删除新创建的文件夹。

fso.DeleteFolder ("C:\\Bogus");

Response.Write("Deleted folder C:\\Bogus" + "<br/>");

}

ASP分页函数 



Function ExportPageInfo(ByRef rs,curpage,i,LinkFile)

Dim retval, j, pageNumber, BasePage



retval = "第" & curpage & "页/总" & rs.pagecount & "页 " 

retval = retval & "本页" & i & "条/总" & rs.recordcount & "条 "



If curpage = 1 Then 

retval = retval & "首页 前页 " 

Else 

retval = retval & "<a href=''" & LinkFile & "page=1''>首页</a> <a href=''" & LinkFile & "page=" & cstr(curpage - 1) & "''>前页</a> " 

End If

If curpage = rs.pagecount Then 

retval = retval & "后页 末页"

Else

retval = retval & "<a href=''" & LinkFile & "page=" & cstr(curpage + 1) & "''>后页</a> <a href=''" & LinkFile & "page=" & cstr(rs.pagecount) & "''>末页</a>"

End if



retval = retval & "<br/>"

BasePage = (curpage \ 10) * 10

If BasePage > 0 Then retval = retval & " <a href=''" & LinkFile & "page=" & (BasePage - 9) & "''><<</a>"

For j = 1 to 10

pageNumber = BasePage + j

If PageNumber > rs.pagecount Then Exit For

If pageNumber = Cint(curpage) Then

retval = retval & " <font color=''#FF0000''>" & pageNumber & "</font>"

Else

retval = retval & " <a href=''" & LinkFile & "page=" & pageNumber & "''>" & pageNumber & "</a>"

End If

Next

If rs.pagecount > BasePage Then retval = retval & " <a href=''" & LinkFile & "page=" & (BasePage + 11) & "''>>></a>"



ExportPageInfo = retval

End Function



应用

<%

adoPageRS.open "SELECT * FROM news ORDER BY addtime DESC", conn, 1, 1

if err.number <> 0 then

response.write "数据库操作失败:"&err.description

else

if adoPageRS.eof and adoPageRS.bof then

response.write "没有记录"

else

%>

<div align="center"> 

<center>

<table width="100%" border="0" cellspacing="1" cellpadding="2">

<tr class="big"> 

<td width="60%">新 闻 标 题</td>

<td width="25%" align="center">日期</td>

<td width="15%" align="center">操  作</td>

</tr>

<% 

adoPageRS.pagesize = 10 

adoPageRS.absolutepage = curpage 

for i = 0 to 9 

%>

<tr> 

<td><%= adoPageRS("title") %></td>

<td align="center"> 

<% = adoPageRS("addtime") %>

</td>

<td align="center"><a href=''newsman.asp?action=edit&id=<%= adoPageRS("id")%>''>编辑</a> 

<a href=''javascript:confirmDel(<%= adoPageRS("id") %>)''>删除</a></td>

</tr>

<% 

adoPageRS.movenext 

if adoPageRS.eof then

i = i + 1

exit for

End If

next

%>

<tr align="center"> 

<td colspan="3"> 

<% = ExportPageInfo(adoPageRS, curpage, i, "Newsman.asp?") %>

</td>

</tr>

</table>

</center>

</div>



asp常常用到的一些东西,

<%=Request.ServerVariables("remote_addr")%>



FOR each item in Request.form

tempvalue=trim(Request(item))

tempvalue=Replace(tempvalue,chr(13)&chr(10),"<br/>")

tempvalue=Replace(tempvalue,"<br/><br/>","<br/>")

if tempvalue="" then tempvalue=0

Execute item&"="""&tempvalue&""""

''response.write item&"="&tempvalue&"<br/>"

next

''response.write request("id")

''response.end



if ="" then 

response.write "<script language=''javascript''>window.alert('''')</script>"

response.write "<script language=''javascript''>window.history.go(-1);</script>"

response.end

end if



<!--#include file="" -->

<!--#include virtual="" -->



sql="select max(id) from pack"

set RS=conn.execute(sql)

if isnull(RS(0)) then

id=1

else

id=RS(0)+1

end if

set rs=nothing



sql="insert into pack(id,strpackdm,strusername) values("&id&",''"&strpackdm&"'',''"&Session("username")&"'')"

set RS=conn.execute(sql)



sql="update pack set "&Itemname&"=''"&tempvalue&"'' where id="&id&""

if Itemname<>"id" then

response.write sql&"<br/>"

set rs=conn.execute(sql)



if err.number<>0 then

''错误处理

response.write "数据库操作失败:" & err.description

err.clear

end if



Set rs=Nothing

Conn.close

Set conn=Nothing



do while not rs.eof and rowcount>0



rowcount=rowcount-1

rs.MoveNext



do while not rs.eof



rs.MoveNext

loop



for each item in rs2.fields

Execute item.name&"="""&trim(rs2(""&item.name&""))&""""

next



function Mycn(str)

str=lcase(str)

str=replace(str,"","")

response.write str

end function



dim conn

dim connstr

on error resume next

set conn=server.CreateObject("adodb.connection")



Connstr="driver=SQL Server; server="&servername&"; uid="&username&"; pwd="&password&"; database="&datebasename&";"



Connstr="DBQ="+server.mappath(mydbpath&mdbname)+";DRIVER={Microsoft Access Driver (*.mdb)};"



''response.write Connstr

''response.end

conn.Open connstr 

if err<>0 then

Response.Write "无法建立到数据库的连接!"

end if 

  • 上一篇文章: 什么是ASP——解析(1)
  • 下一篇文章: ASP编程技巧大全[1]
  • 域浪网络ISP经营许可证 深圳地址:深圳市罗湖区宝安北路国际商品交易大厦七楼C30室
    Tel:0755-82266883/82267566 Fax:0755-82261966
    邮编:518000 
                        Copyright © 2006-2008 elang.cn All Rights Reserved 深圳市域浪网络技术有限公司版权所有