首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在VBScript中使用常用的“另存为”对话框?

如何在VBScript中使用常用的“另存为”对话框?
EN

Stack Overflow用户
提问于 2010-12-08 17:52:51
回答 6查看 31.3K关注 0票数 18

我想让我的VBScript显示Windows的“另存为”对话框,但我不知道该怎么做。

使用以下代码:

代码语言:javascript
复制
Dim sfd
Set sfd = CreateObject("UserAccounts.CommonDialog")
sfd.ShowOpen

我可以获得一个Open对话框,但是没有用于此对象的ShowSave方法(因为在Visual Basic非脚本中似乎有类似的对象)。

我搜索了StackOverflow和谷歌搜索"vbscript保存对话框“(和"Windows Script Host"),但我只找到了从网页访问通用对话框的线索和BrowseForFolder对话框的解决方案,而没有真正调用保存对话框的线索。

实际上,我可以使用Open对话框,因为我只需要一个文件名...但是,由于我希望将某些内容保存到选定的路径中,因此在对话框的标题栏中添加“另存为”会更合适。

EN

回答 6

Stack Overflow用户

发布于 2010-12-17 02:51:11

在VBScript (或VBA或JScript )中使用通用对话框的秘诀在于,您必须在计算机上安装其许可证。某些开发工具,如Visual Basic 6,将安装许可证,但它也由免费的Microsoft HTML帮助编辑器(这是一个相当旧的应用程序)安装。有趣的是,如果您先安装HTML帮助编辑器,然后再将其卸载,则会保留Common Dialog许可证。出于这个原因,我认为许可证是免费提供的,因此将在我的答案中包括它在此处创建的注册表项:

HKLM\Software\CLASSES\Licenses\4D553650-6ABE-11cf-8ADB-00AA00C00905中,将(Default)条目设置为gfjmrfkfifkmkfffrlmmgmhmnlulkmfmqkqj

一旦准备就绪,您就可以使用如下代码从VBScript中创建这些对话框:

代码语言:javascript
复制
Set objDialog = CreateObject("MSComDlg.CommonDialog")

若要启动文件保存对话框,请使用以下代码中的ShowSave方法:

代码语言:javascript
复制
objDialog.ShowSave

当然,这个对象还有一堆其他的方法和属性,您可能希望在启动对话框之前配置适当的属性。例如,可以设置文件筛选器,以便对话框中仅显示某些文件扩展名。在MSDN站点上有一个很好的控件引用:http://msdn.microsoft.com/en-us/library/aa259661%28v=vs.60%29.aspx

希望这能有所帮助。如果你有任何问题,请告诉我。

票数 11
EN

Stack Overflow用户

发布于 2010-12-14 07:13:13

http://blogs.msdn.com/b/gstemp/archive/2004/02/18/75600.aspx上,有一种方法描述了如何从VBScript显示“另存为”对话框。

请注意,根据http://www.eggheadcafe.com/software/aspnet/29155097/safrcfiledlg-has-been-deprecated-by-microsoft.aspx的说法,SAFRCFileDlg已被微软弃用。

票数 0
EN

Stack Overflow用户

发布于 2011-11-12 03:36:04

我刚刚做了一个shell,把它链接到一个asp网站,让网站读取一个方向标签--我把文件位置加载到其中,然后asp页面在那个文件位置上打开文件对话框,文件名也是通过方向标签指定的。保存后,外壳将消失。

如果这是网站定向标签的限制,例如(blah.com/temp.aspx?x=0&y=2&z=3)

将信息存储在SQL数据库或平面文件中,有很多变通方法,但上面所说的都是真的。VBS不会在内部裁剪它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4386124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档