0

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

' 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

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

4

2 回答 2

1

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

%WinDir%\SysWOW64\WScript.exe script.vbs
%WinDir%\SysWOW64\CScript.exe script.vbs
于 2013-03-13T18:02:54.047 回答
0

comdlg32.dll 仅在您安装了 Visual Studio 或类似软件时才安装。

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

将它放在system32文件夹中并使用regsvr32.exe注册它

或 64 位

regsvr32 c:\Windows\SysWOW64\comdlg32.ocx

它有效。

于 2013-03-13T15:30:58.280 回答