VB纯代码调用系统打开对话框(多选)
创始人
2025-06-01 03:02:30
0

在这里插入图片描述

'在窗口上画一个List1和一个Command1按钮
'新建一个模块,代码如下:
Option Explicit
Public 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
Public Declare Function GetOpenFileName Lib “comdlg32.dll” Alias “GetOpenFileNameA” (pOpenfilename As OPENFILENAME) As Long
Public sFileName() As String '用于打开文件时的数组

Function OpenFiles(ByVal hwnd As Long, ByVal sTitle As String, ByVal sStyle As String, ByVal uFlag As Long, Optional lMaxFileNum As Long) As String
'说明:
'hwnd 指窗体的HWND值
'sTitle 指对话框的标题
'sTytle 指打开文件的格式,如:.exe或者.*,多个可以使用分号隔离
'uFlag 指是否可以选择多个文件,1可以,其他就只能选一个
'lMaxFileNum 文件个数,长度的数值,一般是255,如果文件多,可以使用65535
Dim ofn As OPENFILENAME
Const OFN_ALLOWMULTISELECT = &H200
Const OFN_EXPLORER = &H80000
Const OFN_FILEMUSTEXIST = &H1000
If Len(Trim(Str(lMaxFileNum))) = 0 Then lMaxFileNum = 255
uFlag = IIf(uFlag = 1, OFN_ALLOWMULTISELECT Or OFN_EXPLORER Or OFN_FILEMUSTEXIST, OFN_EXPLORER Or OFN_FILEMUSTEXIST)
With ofn
.lStructSize = Len(ofn)
.hwndOwner = hwnd
.hInstance = App.hInstance
.lpstrFile = Space(lMaxFileNum−1).nMaxFile=lMaxFileNum.lpstrFileTitle=Space(lMaxFileNum - 1) .nMaxFile = lMaxFileNum .lpstrFileTitle = Space(lMaxFileNum−1).nMaxFile=lMaxFileNum.lpstrFileTitle=Space(lMaxFileNum - 1)
.nMaxFileTitle = lMaxFileNum
.lpstrTitle = sTitle
.lpstrFilter = “All Surported Files” + Chr(0)+sStyle+Chr(0) + sStyle + Chr(0)+sStyle+Chr(0)
.flags = uFlag
End With
Dim lRet As Long
lRet = GetOpenFileName(ofn)
OpenFiles = IIf(lRet > 0, ofn.lpstrFile, “”)
End Function

Function GetFileNames(ByVal tmpString As String) As Integer
Dim FileNames() As String
FileNames() = Split(tmpString, vbNullChar)
If UBound(FileNames()) < 3 Then
ReDim sFileName(0)
sFileName(0) = FileNames(0) '如果只是选了一个
GetFileNames = 0
Else
Dim m As Integer
GetFileNames = UBound(FileNames) - 3
ReDim sFileName(0 To GetFileNames)
For m = 0 To GetFileNames
sFileName(m) = IIf(Right(FileNames(0), 1) = “”, FileNames(0) + FileNames(m + 1), FileNames(0) + “” + FileNames(m + 1))
Next
End If
End Function
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'窗体调用函数
Private Sub Main()
Dim tString As String, iFileNum As Integer, i As Integer
tString = OpenFiles(0, “打开”, “.”, 1, 255)
If tString = “” Then Exit Sub
iFileNum = GetFileNames(tString)
For i = 0 To iFileNum
List1.AddItem sFileName(i)
Next
End Sub

Private Sub Command1_Click()
Call Main
End Sub

相关内容

热门资讯

周代音乐内容分为几类 周代音乐内容分为几类A.3 B.4 C.5 D.6答案错误,务信,被坑了
古代的叙事诗 古代的叙事诗那个《孔雀东南飞》可能是,还有《木兰诗》、《长恨歌》、《琵琶行》应该也是的。其实是不是叙...
最新放假通知!连休8天 今天是端午节假期的最后一天下次休假在啥时候?根据国务院办公厅关于2025年部分节假日安排的通知今年的...
白头发男主角是王爷的小说 白头发男主角是王爷的小说不嫁妖孽王爷 白发王妃(女主白了头发,男主为了女主喝了一种药也白了头发)
用物理学原理解释彩虹为什么是弯... 用物理学原理解释彩虹为什么是弯的,中午为何很难看到彩虹是空气中水蒸气浓度不同造成的色散,所以必须在比...
大幅超去年同期 2025端午档... 据网络平台数据,截至6月2日12时47分,2025年端午档电影票房破4亿,大幅超去年同期。合家欢电影...
东方海洋:全资子公司取得医疗器... 每经AI快讯,6月2日,东方海洋公告,全资子公司艾维可生物科技有限公司自主研发的铁蛋白(Fer)测定...
晶科能源:收到政府补助9800... 晶科能源(688223)公告,5月29日收到政府补助人民币9800万元,属于与收益相关的政府补助款项...
北汽蓝谷:子公司5月销量同比增... 6月2日,北汽蓝谷公告称,子公司北京新能源汽车股份有限公司5月份产量为13,433辆,同比增长216...
采访体育记者可以问什么问题 采访体育记者可以问什么问题要做一个体育记者的人物专访,请问有什么问题可以问啊?求助啊.....为什么...
高凌信息:终止发行股份及支付现... 高凌信息(688175.SH)公告称,公司决定终止发行股份及支付现金购买资产并募集配套资金事项,主要...
为了培养学生吃苦耐劳、坚强自立... 为了培养学生吃苦耐劳、坚强自立的精神,教师给学生们讲了“卧薪尝胆”的故事。这体现了哪项德育方法?()...
送你一片浪漫花海 和薰衣草一起... 位于新疆伊犁河谷中部的伊宁县天山花海景区是国内薰衣草连片种植面积最大的薰衣草基地。这两天,当地2.2...
奇瑞集团5月销售汽车20.57... 人民财讯6月2日电,奇瑞集团消息,奇瑞集团2025年5月销售汽车20.57万辆,同比增长9.1%。其...
【特稿】一堂课、一座桥、一程游... “天津的企业给我们出资建设温室大棚,又手把手地教我们种植技术,还主动为我们的农产品找销路,实在太感谢...
一堂课、一座桥、一程游、一束菇... 转自:津云庆阳与天津相隔千山万水,但“对口帮扶”让两座城市亲如兄弟。海河之水悄然润泽着董志塬的沟壑,...
华仁药业:持股5%以上股东华仁... 华仁药业6月2日公告,公司持股5%以上股东华仁世纪集团计划自2025年6月24日至2025年9月23...
“苏超”火了!网友:没有人情世... 转自:宁波晚报足球世界里,太多夹杂着底蕴比拼与恩怨情仇的高手过招,被冠以“德比”之名而享誉全球——意...
A股千亿级研发投入行业:建筑行...   在科技自立自强与产业链升级的双重驱动下,A股上市公司的研发投入正成为观察中国经济动能转换的关键窗...
适合一个人干的小生意,夫妻店创...   嗨,我的朋友们。夫妻可以做生意吗      一起?对于做小生意,没问题。      但是做大生意...