我想让我的VBScript显示Windows的“另存为”对话框,但我不知道该怎么做。
使用以下代码:
Dim sfd
Set sfd = CreateObject("UserAccounts.CommonDialog")
sfd.ShowOpen
我可以获得一个Open对话框,但是没有用于此对象的ShowSave
方法(因为在Visual Basic非脚本中似乎有类似的对象)。
我搜索了StackOverflow和谷歌搜索"vbscript保存对话框“(和"Windows Script Host"),但我只找到了从网页访问通用对话框的线索和BrowseForFolder
对话框的解决方案,而没有真正调用保存对话框的线索。
实际上,我可以使用Open对话框,因为我只需要一个文件名...但是,由于我希望将某些内容保存到选定的路径中,因此在对话框的标题栏中添加“另存为”会更合适。
发布于 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中创建这些对话框:
Set objDialog = CreateObject("MSComDlg.CommonDialog")
若要启动文件保存对话框,请使用以下代码中的ShowSave方法:
objDialog.ShowSave
当然,这个对象还有一堆其他的方法和属性,您可能希望在启动对话框之前配置适当的属性。例如,可以设置文件筛选器,以便对话框中仅显示某些文件扩展名。在MSDN站点上有一个很好的控件引用:http://msdn.microsoft.com/en-us/library/aa259661%28v=vs.60%29.aspx。
希望这能有所帮助。如果你有任何问题,请告诉我。
发布于 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已被微软弃用。
发布于 2011-11-12 03:36:04
我刚刚做了一个shell,把它链接到一个asp网站,让网站读取一个方向标签--我把文件位置加载到其中,然后asp页面在那个文件位置上打开文件对话框,文件名也是通过方向标签指定的。保存后,外壳将消失。
如果这是网站定向标签的限制,例如(blah.com/temp.aspx?x=0&y=2&z=3)
将信息存储在SQL数据库或平面文件中,有很多变通方法,但上面所说的都是真的。VBS不会在内部裁剪它。
https://stackoverflow.com/questions/4386124
复制相似问题