4

在 XP 中,您可以使用带有 UserAccounts.CommonDialog 对象的 VBScript 来打开文件打开对话框(如此处所述),但显然这在 Vista 下不起作用

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

或者甚至可以很好地适用于 Vista?

免责声明:我是一个合格的程序员,诚实,并且通常不使用 VBScript - 我是“为朋友”问这个问题的。

4

1 回答 1

1

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

  • (1)创建一个点网库类型的项目,暴露你想要COM互操作的类(添加ComVisibleClassInterface属性)。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
于 2011-01-05T19:19:52.850 回答