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.CommonDialogWindows 7 (テスト済み) ではまだ生きていてアクティブ (登録済み) ですが、Windows 8 では放棄されています。64 ビット OS で実行していると思いますが、そのコントロールは 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 に答える