﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-领星动网编程开发之爆炸小宇宙-随笔分类-VBScript</title><link>http://www.cnitblog.com/lxasp/category/8981.html</link><description>cnitblog.com/lxasp  -  -   有一种信念叫做编程</description><language>zh-cn</language><lastBuildDate>Tue, 17 Oct 2023 17:35:24 GMT</lastBuildDate><pubDate>Tue, 17 Oct 2023 17:35:24 GMT</pubDate><ttl>60</ttl><item><title>打开文件对话框的VBScript全兼容解决方案(无临时文件)XP-W7-W10(IE6-11) GetOpenFileName</title><link>http://www.cnitblog.com/lxasp/archive/2023/08/29/96720.html</link><dc:creator>lxasp</dc:creator><author>lxasp</author><pubDate>Tue, 29 Aug 2023 07:22:00 GMT</pubDate><guid>http://www.cnitblog.com/lxasp/archive/2023/08/29/96720.html</guid><wfw:comment>http://www.cnitblog.com/lxasp/comments/96720.html</wfw:comment><comments>http://www.cnitblog.com/lxasp/archive/2023/08/29/96720.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lxasp/comments/commentRss/96720.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lxasp/services/trackbacks/96720.html</trackback:ping><description><![CDATA[<span style="background-color: #ffffff;">VBScript</span>实现运行&#8220;打开文件对话框&#8221;进行文件选择。（<span style="background-color: #ffffff;">不创建临时文件</span>）<br /><br />GetOpenFileName VBScript&nbsp;<span style="background-color: #ffffff;">Solution Without Create Temporary File<br /><br />Using&nbsp;</span><span style="background-color: #ffffff;">HTA:APPLICATION</span><span style="background-color: #ffffff;">&nbsp;with&nbsp;</span><span style="background-color: #ffffff;">HtmlDlgHelper.</span><span style="background-color: #ffffff;">openfiledlg(InitFilePath,'',FileTypeFilters,</span><span style="background-color: #ffffff;">Dialog</span><span style="background-color: #ffffff;">Caption)</span><span style="background-color: #ffffff;">&nbsp;<br /><br />Return The Result FileName From&nbsp;</span><span style="background-color: #ffffff;">FileSystemObject(</span><span style="background-color: #ffffff;">FSO) Stdout<br /><br />Fully&nbsp;</span><span style="background-color: #ffffff;">compatible: Windows XP / Windows Server 2003&nbsp;</span><span style="background-color: #ffffff;">(IE6--IE8)</span><br /><span style="background-color: #ffffff;">Fully&nbsp;</span><span style="background-color: #ffffff;">compatible:&nbsp;</span><span style="background-color: #ffffff;">Windows 7 / Windows 8 / Windows 10 (IE8--IE11)</span><span style="background-color: #ffffff;"><br /></span>Fully&nbsp;compatible: Windows Vista (IE7)&nbsp;/ Windows Server 2008 (IE7)<br /><br />VBScript Code:<br /><div style="background-color: #eeeeee; font-size: 13px; border-color: #cccccc; border-image: initial; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">Function</span>&nbsp;pickOpenFileName(caption,filters,initfn)<br />&nbsp;&nbsp;caption=<span style="color: #0000FF; ">Trim</span>(caption)<br />&nbsp;&nbsp;<span style="color: #0000FF; ">Set</span>&nbsp;w=<span style="color: #0000FF; ">CreateObject</span>("WScript.Shell")::<span style="color: #0000FF; ">Set</span>&nbsp;k=w.Environment("PROCESS")::k("c")=caption::k("f")=filters::k("n")=initfn<br />&nbsp;&nbsp;<span style="color: #0000FF; ">Set</span>&nbsp;e=w.Exec("%SystemRoot%\System32\mshta.exe&nbsp;""about:&lt;SCRIPT&gt;p=new&nbsp;ActiveXObject('WScript.Shell').Environment('PROCESS');document.write('&lt;TITLE&gt;'+(p('c')||'\xA0')+'&lt;/TITLE&gt;');try{moveTo(-9e4,0)}catch(E){}onload=function(){B=D.openfiledlg(p('n'),'',p('f'),p('c'));new&nbsp;ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).WriteLine(B);close()}&lt;/SCRIPT&gt;&lt;HTA:APPLICATION&nbsp;WINDOWSTATE=minimize&nbsp;/&gt;&lt;OBJECT&nbsp;ID=D&nbsp;CLASSID=CLSID:3050F4E1-98B5-11CF-BB82-00AA00BDCE0B&gt;&lt;/OBJECT&gt;""")<br />&nbsp;&nbsp;pickOpenFileName=e.StdOut.ReadLine<br /><span style="color: #0000FF; ">End&nbsp;Function</span><br /><br /><br /><span style="color: #0000FF; ">Function</span>&nbsp;takeOpenFileName(caption,filters,initfn,msght)<br />&nbsp;&nbsp;caption=<span style="color: #0000FF; ">Trim</span>(caption)<br />&nbsp;&nbsp;<span style="color: #0000FF; ">Set</span>&nbsp;w=<span style="color: #0000FF; ">CreateObject</span>("WScript.Shell")::<span style="color: #0000FF; ">Set</span>&nbsp;k=w.Environment("PROCESS")::k("c")=caption::k("f")=filters::k("n")=initfn::k("m")=msght<br />&nbsp;&nbsp;<span style="color: #0000FF; ">Set</span>&nbsp;e=w.Exec("%SystemRoot%\System32\mshta.exe&nbsp;""about:&lt;HTA:APPLICATION&nbsp;BORDER=none&nbsp;SHOWINTASKBAR=no&nbsp;INNERBORDER=no&nbsp;SCROLL=no&nbsp;/&gt;&lt;BODY&nbsp;BGCOLOR=#DDEEFF&nbsp;TEXT=#336699&gt;&lt;H1&nbsp;ALIGN=RIGHT&gt;&lt;SCRIPT&gt;p=new&nbsp;ActiveXObject('WScript.Shell').Environment('PROCESS');document.write(p('m'))&lt;/SCRIPT&gt;&lt;/H1&gt;&lt;OBJECT&nbsp;ID=D&nbsp;CLASSID=CLSID:3050F4E1-98B5-11CF-BB82-00AA00BDCE0B&gt;&lt;/OBJECT&gt;&lt;SCRIPT&gt;onload=function(){B=D.openfiledlg(p('n'),'',p('f'),p('c'));new&nbsp;ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).WriteLine(B);close()}&lt;/SCRIPT&gt;""")<br />&nbsp;&nbsp;takeOpenFileName=e.StdOut.ReadLine<br /><span style="color: #0000FF; ">End&nbsp;Function</span><br /><br /><br /><span style="color: #0000FF; ">Sub</span>&nbsp;maybeSplashScreen()<br />&nbsp;&nbsp;<span style="color: #0000FF; ">Set</span>&nbsp;w=<span style="color: #0000FF; ">CreateObject</span>("WScript.Shell")<br />&nbsp;&nbsp;v=w.RegRead("HKLM\SOFTWARE\Microsoft\Internet&nbsp;Explorer\Version")<br />&nbsp;&nbsp;<span style="color: #0000FF; ">If</span>&nbsp;<span style="color: #0000FF; ">CInt</span>(<span style="color: #0000FF; ">Left</span>(v,2))&gt;7&nbsp;<span style="color: #0000FF; ">Then</span>&nbsp;<span style="color: #0000FF; ">Exit</span>&nbsp;<span style="color: #0000FF; ">Sub</span><br />&nbsp;&nbsp;v=w.RegRead("HKLM\SOFTWARE\Microsoft\Windows&nbsp;NT\CurrentVersion\CurrentVersion")<br />&nbsp;&nbsp;<span style="color: #0000FF; ">If</span>&nbsp;<span style="color: #0000FF; ">CInt</span>(<span style="color: #0000FF; ">Left</span>(v,2))&gt;5&nbsp;<span style="color: #0000FF; ">Then</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">Set</span>&nbsp;e=w.Exec("%SystemRoot%\System32\mshta.exe&nbsp;""about:&lt;HTA:APPLICATION&nbsp;BORDER=none&nbsp;SHOWINTASKBAR=no&nbsp;INNERBORDER=no&nbsp;SCROLL=no&nbsp;/&gt;&lt;STYLE&gt;body{margin:0}table{border-collapse:collapse}table,td{border:5px&nbsp;solid&nbsp;#6F6}&lt;/STYLE&gt;&lt;BODY&nbsp;BGCOLOR=#009900&nbsp;TEXT=#FFFFFF&gt;&lt;TABLE&nbsp;WIDTH=100%&nbsp;HEIGHT=100%&gt;&lt;TR&nbsp;VALIGN=MIDDLE&gt;&lt;TD&nbsp;ALIGN=CENTER&gt;&lt;FONT&nbsp;SIZE=7&gt;正在加载...&lt;BR&gt;Loading...&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/BODY&gt;""")<br />&nbsp;&nbsp;&nbsp;&nbsp;WScript.Sleep&nbsp;500<br />&nbsp;&nbsp;&nbsp;&nbsp;e.Terminate<br />&nbsp;&nbsp;<span style="color: #0000FF; ">End</span>&nbsp;<span style="color: #0000FF; ">If</span><br /><span style="color: #0000FF; ">End&nbsp;Sub</span><br /><br /><br />maybeSplashScreen()<br /><br />r=pickOpenFileName("","","")<br /><span style="color: #0000FF; ">If</span>&nbsp;<span style="color: #0000FF; ">Len</span>(r)&gt;0&nbsp;<span style="color: #0000FF; ">Then</span>&nbsp;<span style="color: #0000FF; ">MsgBox</span>&nbsp;r,64,"OpenFile"<br /><br />r=pickOpenFileName("请选择数据文件","电子表格(*.xls)|*.xls|所有文件(*.*)|*.*|","")<br /><span style="color: #0000FF; ">If</span>&nbsp;<span style="color: #0000FF; ">Len</span>(r)&gt;0&nbsp;<span style="color: #0000FF; ">Then</span>&nbsp;<span style="color: #0000FF; ">MsgBox</span>&nbsp;r,64,"OpenFile"<br /><br /><br />r=takeOpenFileName("","","","欢迎使用&lt;BR&gt;实用软件")<br /><span style="color: #0000FF; ">If</span>&nbsp;<span style="color: #0000FF; ">Len</span>(r)&gt;0&nbsp;<span style="color: #0000FF; ">Then</span>&nbsp;<span style="color: #0000FF; ">MsgBox</span>&nbsp;r,64,"OpenFile"<br /><br />r=takeOpenFileName("请选择数据文件","电子表格(*.xls)|*.xls|所有文件(*.*)|*.*|","","欢迎使用&lt;BR&gt;实用软件&lt;BR&gt;版本:202308")<br /><span style="color: #0000FF; ">If</span>&nbsp;<span style="color: #0000FF; ">Len</span>(r)&gt;0&nbsp;<span style="color: #0000FF; ">Then</span>&nbsp;<span style="color: #0000FF; ">MsgBox</span>&nbsp;r,64,"OpenFile"</div><br />&nbsp;<img src ="http://www.cnitblog.com/lxasp/aggbug/96720.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lxasp/" target="_blank">lxasp</a> 2023-08-29 15:22 <a href="http://www.cnitblog.com/lxasp/archive/2023/08/29/96720.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>