- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章VBS 显示“选择文件或文件夹”对话框的代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1、显示“选择文件”的对话框 问: 嗨,Scripting Guy!有没有什么方法可以让我使用脚本向用户显示一个对话框,供用户选择文件使用?
答:您好。| 如果您使用的是 Windows 2000,我们不知道实现此操作的方法,至少操作系统中没有内置这样的方法。 但如果您使用的是 Windows XP,情况就不同了。在 Windows XP 上,您可以使用"UserAccounts.CommonDialog” 对象向用户显示一个标准的“文件打开”对话框.
可以用类似以下代码的脚本:
。
这是一个小脚本,所以让我们逐行进行解释吧:
。
1)我们首先创建一个对 UserAccounts.CommonDialog 对象的对象引用(名为“objDialog”).
2)接着,我们设置对话框的“筛选”属性。我们要显示所有文件,所以我们将筛选设置成这样: objDialog.Filter = "All Files|*.*" 。
假如我们只想显示文本文件,那该怎么办?在这种情况下,我们将使用以下筛选: objDialog.Filter = "Text Files|*.txt" 。
您也许能够看出它是如何运行的:我们为文件类型提供说明 (Text Files),然后插入一个竖线分隔符 (|),最后使用标准的通配符来指示所有 .txt 文件 (*.txt)。 是不是想默认显示 .txt 文件,然后为用户提供查看所有文件的选项?那么可以使用以下代码: objDialog.Filter = "Text Files|*.txt|All Files|*.*" 。
试一试,您就明白我们的意思了.
3)然后,我们指定默认文件夹。 默认情况下,我们希望对话框显示位于驱动器 C 的根文件夹中的文件,所以我们这样设置“InitialDir”属性: objDialog.InitialDir = "C:\" 。
希望显示 C:\Windows 文件夹中的文件吗?那么可以使用以下代码: objDialog.InitialDir = "C:\Windows" 。
不必担心:这是一个真正的“文件打开”对话框,所以您可以随意单击,并且可以随时停下来。您从 C:\Windows 开始并不意味着您只能打开该文件夹中的文件.
4)最后,我们使用下面这行代码显示对话框:
intResult = objDialog.ShowOpen 。
现在,我们只需坐下来,等待用户选择文件并单击“确定”(或者等待用户单击“取消”)。 如果用户单击“取消”,则变量 intResult 将被设置为 0。在我们的脚本中,我们检查 intResult 的值,如果是 0,我们将只需要使用 Wscript.Quit 来终止此脚本。 但是如果用户实际上选择了文件并单击了“确定”,那该怎么办?在这种情况下,intResult 将被设置为 -1,“FileDialog”属性将被设置为所选文件的路径名。我们的脚本只回显路径名,这意味着我们将得到类似以下内容的输出:
C:\WINDOWS\Prairie Wind.bmp 。
不用说,您并不局限于只回显文件路径。实际上,您可以使用 WMI、FileSystemObject 或一些其他技术来绑定该文件,然后对其执行删除、复制、压缩或检索文件属性等操作 — 您对文件能够执行的操作差不多都可以对它执行.
但无论如何,您都需要使用脚本.
顺便说一句,使用此方法,您一次只能选择一个文件,而不能按住“Ctrl”键选择多个文件。有一种方法可以选择多个文件,至少在 XP 计算机上可以,但是我们只能将此问题留到以后的专栏中讨论了.
。
2、显示“选择文件夹”对话框? 问:嗨,脚本专家!在前面的专栏中,您为我们展示了如何给用户显示对话框,使他们能够选择文件。存在给用户显示一个对话框,只让他们选择文件夹的办法吗?
答:您好.
实际上,我们有 BrowseForFolder 方法,它是 Windows Shell 对象的一部分。 让我给您一个脚本示例,然后讲一下它的工作方式:
首先,我们定义一对常量:WINDOW_HANDLE 和 OPTIONS。 WINDOW_HANDLE 常量表示需要指定给要显示的对话框的数字 ID;对于脚本,此值应始终为 0。 将 OPTIONS 设置为 0 表示我们将显示一个非常简单的对话框,一个限制用户只从文件夹列表进行选择的对话框。或者,我们可以将 OPTIONS 设置成 &H10&。这种情况下,我们的对话框将包括文本区,用户可以在此键入文件夹路径.
。
定义完常量后,我们创建 Shell.Application 对象的实例,然后使用以下代码显示“浏览文件夹”对话框: Set objFolder = objShell.BrowseForFolder _ (WINDOW_HANDLE, "Select a folder:", OPTIONS, "C:\") 。
您可以看到,我们只是调用 BrowseForFolder 方法,传递了四个参数: WINDOW_HANDLE,正如我们所说明的,是分配给对话框窗口的数字 ID。 文本字符串 Select a folder:,将作为显示在对话框中的说明性消息。 OPTIONS,表示构造对话框所用选项的常量。 C:\,将作为对话框的根文件夹。对话框将打开 C:\,但不允许您选择树视图中较上方的文件位置(例如,您不能选择“我的电脑”)。如果将根文件夹设置为 C:\Scripts,则将只允许用户选择文件夹 C:\Scripts 及其所有子文件夹.
该代码将产生一个类似屏幕上显示的对话框。 (您是否有疑问,是的,您以前曾见过此对话框。许多 Windows 应用程序使用同样的方法,同样的对话框。) 。
此时,我们的脚本暂停,等候用户选择文件夹并单击确定,或者单击取消。当用户进行了这两个操作之一,对话框将被清除,操作将存储在对象引用 objFolder 中.
那么我们如何知道用户是否选择了一个文件夹并单击了确定,或者只单击了取消?以下代码块就用来解决这个问题: If objFolder Is Nothing Then Wscript.Quit End If 。
该代码检查我们的对象引用 (objFolder) 是否等于一个真正对象(这是关键字 Nothing 的用途)。如果 objFolder 等于 Nothing,则意味着用户单击了取消;如果是那样的话,我们只简单用 Wscript.Quit 退出脚本。如果 objFolder 不等于 Nothing,那么 objFolder 一定指向一个真正的对象;于是脚本将继续运行.
由于 Shell 对象的特点,以下两行代码是必要的: Set objFolderItem = objFolder.Self objPath = objFolderItem.Path 。
当用户选择文件夹并单击确定,他们将得到 Shell Folder 对象的实例。然而,由于某些原因您不能使用 Shell Folder 对象;如果我们要检索选定文件夹的路径,我们得用 FolderItem 对象来代替。(为什么是这样呢?我们不知道。)于是,我们的第一行代码使用 Self 方法返回一个 FolderItem 对象,该对象正与我们的 Folder 对象相同。第二行代码将到此 FolderItem 对象的路径存储到变量 objPath 中。看上去有点笨拙,但它确实能够工作.
最后我们回显到选定文件夹的路径,到此工作既已完成.
正如我们说明的,示例对话框使用 C:\ 作为根文件夹,不允许您选择位于计算机其他地方的文件夹。有时这样做很好;这样会迫使用户从一组特定文件夹中进行选择。但有时,想使用户能够选择文件系统中任意位置的文件夹。这可能吗?
当然可以。我们不详述这个修改后的脚本,但该脚本会将“我的电脑”设置为根文件夹: 。
如您所料,所得到的对话框提供了很多选择。这正是您所需要的.
最后此篇关于VBS 显示“选择文件或文件夹”对话框的代码的文章就讲到这里了,如果你想了解更多关于VBS 显示“选择文件或文件夹”对话框的代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我的Angular-Component位于一个flexbox(id =“log”)中。可以显示或隐藏flexbox。 我的组件内部有一个可滚动区域,用于显示日志消息。 (id =“message-li
我真的很困惑 有一个 phpinfo() 输出: MySQL 支持 启用 客户端 API 版本 5.5.40 MYSQL_MODULE_TYPE 外部 phpMyAdmin 显示: 服务器类型:Mar
我正在研究这个 fiddle : http://jsfiddle.net/cED6c/7/我想让按钮文本在单击时发生变化,我尝试使用以下代码: 但是,它不起作用。我应该如何实现这个?任何帮助都会很棒
我应该在“dogs_cats”中保存表“dogs”和“cats”各自的ID,当看到数据时显示狗和猫的名字。 我有这三个表: CREATE TABLE IF NOT EXISTS cats ( id
我有一个字符串返回到我的 View 之一,如下所示: $text = 'Lorem ipsum dolor ' 我正在尝试用 Blade 显示它: {{$text}} 但是,输出是原始字符串而不是渲染
我无法让我的链接(由图像表示,位于页面左侧)真正有效地显示一个 div(包含一个句子,位于中间)/单击链接时隐藏。 这是我的代码: Practice
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
最初我使用 Listview 来显示 oracle 结果,但是最近我不得不切换到 datagridview 来处理比 Listview 允许的更多的结果。然而,自从切换到数据网格后,我得到的结果越来越
我一直在尝试插入一个 Unicode 字符 ∇ 或 ▽,所以它显示在 Apache FOP 生成的 PDF 中。 这是我到目前为止所做的: 根据这个基本帮助 Apache XSL-FO Input,您
我正在使用 node v0.12.7 编写一个 nodeJS 应用程序。 我正在使用 pm2 v0.14.7 运行我的 nodejs 应用程序。 我的应用程序似乎有内存泄漏,因为它从我启动时的大约 1
好的,所以我有一些 jQuery 代码,如果从下拉菜单中选择了带有前缀 Blue 的项目,它会显示一个输入框。 代码: $(function() { $('#text1').hide();
当我试图检查 Chrome 中的 html 元素时,它显示的是 LESS 文件,而 Firefox 显示的是 CSS 文件。 (我正在使用 Bootstrap 框架) 如何在 Chrome 中查看 c
我是 Microsoft Bot Framework 的新手,我正在通过 youtube 视频 https://youtu.be/ynG6Muox81o 学习它并在 Ubuntu 上使用 python
我正在尝试转换从 mssql 生成的文件到 utf-8。当我打开他的输出 mssql在 Windows Server 2003 中使用 notepad++ 将文件识别为 UCS-2LE我使用 file
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我正在尝试执行单击以打开/关闭一个 div 的功能。 这是基本的,但是,点击只显示 div,当我点击“关闭”时,没有任何反应。 $(".inscricao-email").click(function
假设我有 2 张卡片,屏幕上一次显示一张。我有一个按钮可以用其他卡片替换当前卡片。现在假设卡 1 上有一些数据,卡 2 上有一些数据,我不想破坏它们每个上的数据,或者我不想再次重建它们中的任何一个。
我正在使用 Eloquent Javascript 学习 Javascript。 我在 Firefox 控制台上编写了以下代码,但它返回:“ReferenceError:show() 未定义”为什么?
我正在使用 Symfony2 开发一个 web 项目,我使用 Sonata Admin 作为管理面板,一切正常,但我想要做的是,在 Sonata Admin 的仪表板菜单上,我需要显示隐藏一些菜单取决
我试图显示一个div,具体取决于从下拉列表中选择的内容。例如,如果用户从列表中选择“现金”显示现金div或用户从列表中选择“检查”显示现金div 我整理了样本,但样本不完整,需要接线 http://j
我是一名优秀的程序员,十分优秀!