高分求救。创建打开/另存对话框 的问题。

田九 2006-01-08 03:41:20
我用下面这条语
Set newobj = CreateObject("MSComDlg.CommonDialog")
newobj.showopen
在有装VB的机子上可以把打开对话框调起来
而在win2003下却产生,activex部件不能创建对象。
我查过windows\system32有comdlg32.ocx,并且也注册了,怎么还是不能调用呢
...全文
194 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
田九 2006-01-10
  • 打赏
  • 举报
回复
怎么注册呢
田九 2006-01-09
  • 打赏
  • 举报
回复
如果用API应该是可以实现的
问题我是在JAVASCRIPT上做呀
celevantis 2006-01-09
  • 打赏
  • 举报
回复
用Java脚本注册CommonDialog
northwolves 2006-01-08
  • 打赏
  • 举报
回复
或者勿用comdlg32.ocx,改调用comdlg32.dll试试:

Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
Private Sub Form_Load()
Dim OFName As OPENFILENAME
OFName.lStructSize = Len(OFName)
'Set the parent window
OFName.hwndOwner = Me.hWnd
'Set the application's instance
OFName.hInstance = App.hInstance
'Select a filter
OFName.lpstrFilter = "Text Files (*.txt)" + Chr$(0) + "*.txt" + Chr$(0) + "All Files (*.*)" + Chr$(0) + "*.*" + Chr$(0)
'create a buffer for the file
OFName.lpstrFile = Space$(254)
'set the maximum length of a returned file
OFName.nMaxFile = 255
'Create a buffer for the file title
OFName.lpstrFileTitle = Space$(254)
'Set the maximum length of a returned file title
OFName.nMaxFileTitle = 255
'Set the initial directory
OFName.lpstrInitialDir = "C:\"
'Set the title
OFName.lpstrTitle = "Please select a path to open"
'No flags
OFName.flags = 0

'Show the 'Open File'-dialog
If GetOpenFileName(OFName) Then
MsgBox "File to Open: " + Trim$(OFName.lpstrFile)
Else
MsgBox "Cancel was pressed"
End If
End Sub
northwolves 2006-01-08
  • 打赏
  • 举报
回复
我用下面这条语
Set newobj = CreateObject("MSComDlg.CommonDialog")
newobj.showopen
在有装VB的机子上可以把打开对话框调起来
而在win2003下却产生,activex部件不能创建对象。
我查过windows\system32有comdlg32.ocx,并且也注册了,怎么还是不能调用呢
-------------------------------------
不在VB环境下使用时,引用msvbvm60.dll 试试
province_ 2006-01-08
  • 打赏
  • 举报
回复
大小写?
田九 2006-01-08
  • 打赏
  • 举报
回复
我是在JAVASCRIPT上调用呀。
后来我用VB写的,也就是上面的也是不行呀。
我在注册表查过了,有msComdlg.commondialog的类名的
rainstormmaster 2006-01-08
  • 打赏
  • 举报
回复
另外,你最好查查注册表,看看类名是否真的是:"MSComDlg.CommonDialog"
rainstormmaster 2006-01-08
  • 打赏
  • 举报
回复
你在vb中调用的话,直接用控件就可以了?

估计你用的是asp之类的东东吧
rainstormmaster 2006-01-08
  • 打赏
  • 举报
回复
机器破,没法用2003,估计是权限的问题

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧