ASP遠端註冊自己的元件

2021-04-09 09:37:29 字數 3633 閱讀 9000

把asp程式作成dll很多好處,但是有一點,該dll必須註冊才能在asp中呼叫。如果是自己的伺服器那還好,但如果是租用的虛擬伺服器,就沒辦法使用了。

怎樣在遠端主機上註冊我們的dll呢?在伺服器端使用shell!!!

讓我們先將自己的dll檔案通過ftp或http上傳到伺服器上,然後作乙個asp程式,呼叫wscript.shell來  執行regsvr32命令:

set oshell = createobject ('wscript.shell')

oshell.run 'c:/winnt/system32/regsvr32.exe /s d:/***.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')

%>

<%

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('folder ( ' & strroot & ' ) not found.')

exit sub

end if

setroot = orootdir

echo('')

call getalldlls(orootdir)

echob('')

buildoptions

end sub

sub getalldlls(oparentfolder)    '通過fso列舉所有的dll和ocx檔案

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('' _

& ofile.name & '')

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('' _

& ofile.name & '')

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: ')

echob('unregister: ')

end sub

function echo(str)

echo = response.write(str & vbcrlf)

end function

function echob(str)

echob = response.write(str & '

' & 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

%> 

ASP學習 遠端註冊自己的元件

把asp程式作成dll很多好處,但是有一點,該dll必須註冊才能在asp中呼叫。如果是自己的伺服器那還好,但如果是租用的虛擬伺服器,就沒辦法使用了。怎樣在遠端主機上註冊我們的dll呢?在伺服器端使用shell!讓我們先將自己的dll檔案通過ftp或http上傳到伺服器上,然後作乙個asp程式,呼叫w...

ASP學習 遠端註冊自己的元件

把asp程式作成dll很多好處,但是有一點,該dll必須註冊才能在asp中呼叫。如果是自己的伺服器那還好,但如果是租用的虛擬伺服器,就沒辦法使用了。怎樣在遠端主機上註冊我們的dll呢?在伺服器端使用shell!讓我們先將自己的dll檔案通過ftp或http上傳到伺服器上,然後作乙個asp程式,呼叫w...

通過ASP遠端註冊自己的元件

把asp程式作成dll很多好處,但是有一點,該dll必須註冊才能在asp中呼叫。如果是自己的伺服器那還好,但如果是租用的虛擬伺服器,就沒辦法使用了。怎樣在遠端主機上註冊我們的dll呢?在伺服器端使用shell!讓我們先將自己的dll檔案通過ftp或http上傳到伺服器上,然後作乙個asp程式,呼叫w...