2012-12-14 28 views
0

與QLikView一起使用的舊打開文件對話框不再適用於Win7。子使用「MSComDlg.CommonDialog」,這是Sub的代碼。與Win7兼容的打開文件對話框

' 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 

任何人都可以建議一個打開的文件對話框工作嗎?

回答

0

comdlg32.dll僅在安裝了visual studio或類似軟件的情況下安裝。

http://support.microsoft.com/kb/957924 或從網上下載。

放置在system32文件夾下,並用regsvr32.exe的

或64位

REGSVR32 C寄存器它:\ WINDOWS \ Syswow64資料\ COMDLG32.OCX

和它的作品。

1

MSComDlg.CommonDialog在Windows 7(測試)下仍然活着(註冊),它在Windows 8中被放棄。我認爲你在64位操作系統上運行,而該控件只在32位環境下運行。因此,如果是這種情況,所需做的就是使用位於SysWOW64目錄中的WScript.exe/CScript.exe版本作爲32位進程運行.vbs腳本。

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

這只是不正確的。它不能在WindowsRT中運行,否則微軟在其操作系統的所有其他版本上都支持vb6。 http://msdn.microsoft.com/en-us/vstudio/ms788708.aspx – Archlight

+0

我沒有使用移動設備,所以我不能告訴任何關於Windows RT的事情,但是這是否意味着我說的是錯誤的?我仍然有腳本在桌面Windows 7上使用該對話框。無論如何感謝您的注意。 –