在XP和Vista中运行的VBScript文件打开对话框?

时间:2010-04-15 15:59:03

标签: windows-vista vbscript windows-xp fileopendialog

在XP中,您可以将VBScript与UserAccounts.CommonDialog对象一起使用,以显示“文件打开”对话框(as described here),但显然是this does not work under Vista

是否有适用于文件打开对话框的VBScript方法?

或者甚至可以很好地使用Vista的那个?

免责声明:我是一名合适的程序员,诚实,并且通常不会使用VBScript - 我问这个问题'对于朋友'。

1 个答案:

答案 0 :(得分:1)

您可以创建一个简单的点网组件,公开 COM接口,这样您就可以在 VBScript (或任何中使用它>基于COM / ActiveX 的技术)。

  • (1)创建一个点网库类型项目,公开您想要成为COM互操作性的类(添加 ComVisible ClassInterface 属性)。 ClassInterface 属性必须设置为 AutoDual ,以便您可以通过后期绑定创建实例。
  • (2)在项目属性对话框的构建选项卡中标记注册表以获取COM互操作性复选框。
  • (3)构建项目,因此可以正确注册组件(您可以选择为组件创建安装项目,以便轻松部署)。

...

namespace WinUtility
{
    [ComVisible(true), Guid("32284FD3-417E-45fc-A4A0-9344C489053B"),
     ClassInterface(ClassInterfaceType.AutoDual)]
    public class WinDialog
    {
        public string ShowOpenFileDialog()
        {
            string result = string.Empty;
            OpenFileDialog d = new OpenFileDialog();
            if (d.ShowDialog() == DialogResult.OK) { result = d.FileName; }
            return result;
        }
    }
}

注册组件后,您可以从VBScript实例化它:

dim wnd_helper, file_name
Set wnd_helper = CreateObject("WinUtility.WinDialog")
file_name = wnd_helper.ShowOpenFileDialog()
if trim(file_name) <> "" then
    msgbox "file: " + file_name
else
    msgbox "No file selected."
end if