ASP learning: Remote registration of your own components

xiaoxiao2021-03-06  43

Make ASP programs a lot of benefits, but one thing, the DLL must be registered to call in ASP. If it is your own server, it is okay, but if it is a virtual server, there is no way to use it. How to register our DLL on the remote host? Use the shell on the server! ! !

Let's first upload your DLL file to the server through FTP or HTTP, then make an ASP program, call wscript.shell to execute the regsvr32 command: set Oshell = CreateObject ("wscript.shell") Oshell.run "C: / Winnt / System32 / RegSvr32.exe /sd:/xxx.dll ", 0, false, of course, if the other party's server is safe, this code may not be used, but no matter what, learning is also good, :) Also to remind those friends who rent space, whether your server limits the permissions using WScript.Shell? Still carefully, the complete code is as follows, save it as .asp can be used:

<% Response.buffer = true%> <% server.scripttimeout = 500 dimfolderpath, frmfilepath

FRMFolderPath = Request.form ("frmfolderpath") frmfilepath = request.form ("frmdllpath") frmmethod = request.form ("frmmethod") btnreg = request.form ("btnreg")%>

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} </ stop> </ head></p> <p><Body> <form name = "regform" method = "post"> <table border = 0 cellspacing = 6 cellpadding = 6 marginwidth = 6> <tr> <td value = 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 ) & ">") <> "" "" "BTNREG") <> "" "" frmfilepath, frmmethod) end if set registerfiles = not%> </ fieldset> </ td> </ tr > </ Table> </ form> </ body> </ html> <% class clsregisterPrivate M_OFS</p> <p>Public property let offs (objofs) m_ofs = Objofs End Property</p> <p>Public property Get OFS () set OFS = Server.createObject ("scripting.filesystemObject") End Property</p> <p>Sub init (strroot) 'root to search (C:, D:, E :) Dim Odrive, orootdir if offs.folderexists (strroot) Then if len (strroot) <3 TEN' MUST BE A Drive Set ODRIVE = OFS.GETDRIVE (strroot) set orootdir = ODrive.Rootfolder else set ootdir = OFS.GETFOLDER (STRROOT) Endiffer ("& strroot &") NOT Found. ") Exit Sub end if set = ootdirecho (" <Select name = "& chr (34) &" frmdllpath "& chr (34) &"> ") Call getAllDlls (OROOTDIR) ECHOB (" </ select> ") BuildOptions End Sub</p> <p>Sub getAllDlls (OparentFolder) 'lists all DLL and OCX files through FSO DIM Osubfolders, Ofile, Ofiles Set Osubfolders = OparentFolder.Subfolders Set OpFiles = OparentFolder.Files</p> <p>For Each Ofile In Opfiles if Right (Lcase (Ofile.Name), 4) = ".dll", 4) = ".ocx" the echo ("<option value =" & chr (34) & Ofile.Path & Chr (34) & "> _ & Ofile.Name &" </ Option> ") End if Next</p> <p>ON Error Resume Next for Each ofolder in Osubfolders' Itereate All Folders In Drive Set ofiles = Ofolder.Files for Each Ofile IN Ofiles if Right (Lcase (Ofile.Name), 4) = ".dll" or right (Lcase. Name), 4) = ".ocx" TEN Echo ("<option value =" & chr (34) & ipath & chr (34) & "> _ & iplile.name &" </ option> ") End if Next Call GetAllDlls (Ofolder) Next ON Error Goto 0 End Sub</p> <p>Sub Register (strfilepath, regmethod) Dim the, strfile, oshell, exitcode set thefile = OFS.GETFILE (STRFILEPATH) STRFILE = thefile.path</p> <p>Set Oshell = CreateObject ("wscript.shell") if regmethod = "reg" the '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</p> <p>Cleanup Oshell End Sub</p> <p>Sub BuildOptions ECHOB ("Register: <Input Type = Radio Name = frmmeth value = reg checked>") ECHOB ("Unregister: <input type = radio name = frmmethod value = unreg>) End Sub</p> <p>Function Echo (STR) Echo = response.write (str & vbcrlf) end function</p> <p>Function echob (str) echob = response.write (str & "<br>" & vbcrlf) end function</p> <p>Sub Cleanup (OBJ) IF IsObject (obj) THEN SET OBJ = Nothing End If Sub</p> <p>SUB Class_Terminate () Cleanup OFS End Sub End Class%></p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-47593.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="47593" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.041</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = '4Ge_2FF_2BJ_2FXd7zjRoS88u_2BmWNjynkVpf64jRTVIMZw_2Bq8hkcfE3RP2wL16wsT6KCG3_2Bv8LOGunMRXAVOVjgGn_2Ffg_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>