当前位置: 移动技术网 > IT编程>脚本编程>VBScript > VBS打开选择文件对话框代码(Win7)

VBS打开选择文件对话框代码(Win7)

2017年12月08日  | 移动技术网IT编程  | 我要评论

小兔之家,四平青年2二龙湖浩哥之风云再起,王允熙

相信很多人都看过“嗨,scripting guy!”上面的一个问题,就算没有看过原文,也应该看过被复制粘贴后的代码。

我如何向用户显示一个用来选择文件的对话框?

问:嗨,scripting guy!有没有什么方法可以让我使用脚本向用户显示一个对话框,供用户选择文件使用? — bf

答:您好,bf。如果您使用的是 windows 2000,我们不知道实现此操作的方法,至少操作系统中没有内置这样的方法。但如果您使用的是 windows xp,情况就不同了。在 windows xp 上,您可以使用“useraccounts.commondialog”对象向用户显示一个标准的“文件打开”对话框。可以用类似以下代码的脚本:


代码我就不复制粘贴了,原文里面有,网上也到处都是。但是问题在于,这段代码只能用于 windows xp 系统(windows 2003 或许也可以,但是我没有测试过),而现在 windows 7 已经逐渐开始流行起来。在 vista 和windows 7 系统中默认是不自带 useraccounts.commondialog 组件的(顺便提一句,safrcfiledlg.fileopen 和 safrcfiledlg.filesave 组件也是没有的)。

那么如何在 windows 7 系统中向用户显示一个用来选择文件的对话框呢?答案是 html 中的文件选择对话框:
复制代码 代码如下:

function browseforfile()
dim shell : set shell = createobject("wscript.shell")
dim fso : set fso = createobject("scripting.filesystemobject")

dim tempfolder : set tempfolder = fso.getspecialfolder(2)
dim tempname : tempname = fso.gettempname()
dim tempfile : set tempfile = tempfolder.createtextfile(tempname & ".hta")

tempfile.write _
"<html>" & _
"<head>" & _

"<title>browse</title>" & _
"</head>" & _
"<body>" & _

"<input type='file' id='f' />" & _
"<script type='text/javascript'>" & _
"var f = document.getelementbyid('f');" & _

"f.click();" & _
"var shell = new activexobject('wscript.shell');" & _
"shell.regwrite('hkey_current_user\\volatile environment\\msgresp', f.value);" & _
"window.close();" & _

"</script>" & _
"</body>" & _
"</html>"

tempfile.close
shell.run tempfolder & "\" & tempname & ".hta", 0, true
browseforfile = shell.regread("hkey_current_user\volatile environment\msgresp")

shell.regdelete "hkey_current_user\volatile environment\msgresp"
end function

'author: demon
'website: http://demon.tw
'date: 2011/6/2

path = browseforfile()
if path <> "" then wscript.echo path
 
原文:http://demon.tw/programming/vbs-open-file-dialog.html

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网