打开与Win7一起使用的文件对话框

时间:2012-12-14 10:54:42

标签: vbscript openfiledialog qlikview

我与QLikView一起使用的旧打开文件对话框不再适用于Win7。子使用“MSComDlg.CommonDialog”,这是Sub的代码。

' Sub to show open/save dialog
SUB OpenSave (varOpenSaveInputBox, varOpenSaveType, varOpenSaveFilter)   
   ' Create object
   SET objComDlg32 = CreateObject("MSComDlg.CommonDialog")
   ' Set memory buffer
   objComDlg32.MaxFileSize = 260
   ' Set filter
   objComDlg32.Filter = varOpenSaveFilter
   ' Show dialog 
   IF varOpenSaveType = 0 Then
      objComDlg32.ShowOpen
   ELSE
      objComDlg32.ShowSave
   End IF    
   ' Get filename from dialog
   strOpenSave = objComDlg32.FileName
   ' Check IF dialog is cancelled
   IF strOpenSave <> vbNullString Then
      ' Set to variable
      objOpenSave.SetContent strOpenSave, TRUE
   End If
END SUB

有人可以建议一个有效的打开文件对话框吗?

2 个答案:

答案 0 :(得分:1)

MSComDlg.CommonDialog在Windows 7(已测试)下仍处于活动状态且已注册(已注册),在Windows 8中已被废弃。我认为您在64位操作系统上运行,而该控件仅在32位环境中运行。因此,如果是这种情况,那么所有需要做的就是使用WScript.exe/CScript.exe目录中的SysWOW64版本将.vbs脚本作为32位进程运行。

%WinDir%\SysWOW64\WScript.exe script.vbs
%WinDir%\SysWOW64\CScript.exe script.vbs

答案 1 :(得分:0)

只有安装了visual studio或类似软件,才会安装

comdlg32.dll。

http://support.microsoft.com/kb/957924 或者从网上下载。

将其放在system32文件夹中并使用regsvr32.exe

注册

或64位

regsvr32 c:\ Windows \ SysWOW64 \ comdlg32.ocx

它有效。