Remotely register your own components

zhaozj2021-02-16  45

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 be careful

The full code is as follows, saved 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 <>" "TENSET RegisterFiles = New ClsRegisterRegisterFiles.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 ") <>" "ThenCall Registerfiles.Register (frmfilepath, frmmethod) end ifset registerfiles = Nothingend IF%> </ fieldset> </ td> </ tr> </ table> < / Form> </ body> </ html> <% class clsregisterprivate m_ofs</p> <p>Public Property Let Offs (Objofs) M_OFS = Objofsend 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, orootdirif offs.folderexists (strroot) THENIF LEN (STRROOT) <3 TEN' MUSTBE A Driveset ODRIVE = OFS.GETDRIVE (STROOT) Set oRootDir = oDrive.RootFolderElseSet oRootDir = oFS.GetFolder (strRoot) End IFElseEchoB ( "<B> Folder (" & strRoot & ") Not Found.") Exit SubEnd IFsetRoot = oRootDirEcho ( "<SELECT NAME =" & Chr (34 ) & "frmdllpath" & chr (34) & ">") Call getAllDlls (OROOTDIR) ECHOB ("</ select>") BuildOptionSend Sub</p> <p>Sub getAllDlls (OparentFolder) 'Enumeral all DLL and OCX files through FSO DIM OSubfolders, Ofilesset Osubfolders = OparentFolder.SubFoldersSet OpFiles = OparentFolder.Files</p> <p>For Each Ofile In OpFilesif Right (Lcase (Ofile.Name), 4) = ".dll", 4) = ".ocx" thenecho ("<option value =" & chr (34 ) & Ofile.Path & Chr (34) & "_ & Ofile.Name &" </ option> ") End ifnext</p> <p>On Error Resume NextFor Each oFolder In oSubFolders' Iterate All Folders in DriveSet oFiles = oFolder.FilesFor Each oFile in oFilesIF Right (lCase (oFile.Name), 4) = ".dll" OR Right (lCase (oFile.Name), 4 ) = ".ocx" thenecho ("<option value =" & chr (34) & inile.path & chr (34) & "_ _ & ouLile.name &" </ option> ") EndnessCall GetAllDlls (OFOLDER) Nexton Error Goto 0nd Sub</p> <p>Sub Register (Strfilepath, Regmethod) Dim Thefile, Strfile, Oshell, EXITCODESET Thefile = OFS.GETFILE (STRFILEPATH) STRFILE = Thefile.path</p> <p>Set Oshell = CreateObject ("wscript.shell")</p> <p>If regmethod = "reg" the 'registeroshell.run "c: /winnt/system32/regsvr32.exe / s" & strfile, 0, falseexitcode = oshell.run ("c: /winnt/system32/Regsvr32.exe / s" & strfile, 0, false ECHOB ("Regsvr32.exe EXITCODE =" & exitcode) else 'unregisteroshell.run "c: /winnt/system32/regsvr32.exe / u / s" & strfile, 0, falseExitcode = oshell.run ("c: /winnt/system32/regsvr32.exe / u / s" & strfile, 0, false) echob ("regsvr32.exe exitcode =" & exitcode) End ifcleanup Oshellend Sub</p> <p>Sub BuildOptionsechob ("Register: <Input Type = Radio Name = frmmethod value = reg checked>") ECHOB ("unregister: <input type = radio name = frmmeth 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) THENSET OBJ = Nothingend IFEND SUB</p> <p>SUB Class_Terminate () Cleanup Ofsend Subend Class%></p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-26284.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="26284" 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 = 'znMWbYvaDc_2FBKyQ9T34TaywpsuKO8I4CJuHZ7JqPzP9BW1d_2BapBBfv_2BVzkDxizi6wFYPcJbnE2ksBwNNej37DQ_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>