永发信息网

VB编程中,搜寻到文件在列表中例出,并用鼠标双击它打开文件或程序!

答案:5  悬赏:60  手机版
解决时间 2021-02-11 03:07
Option Explicit
Dim fs, folder, subfolders, Files, i, j
Dim mStop As Boolean

Function digui(path)
If mStop = True Then Exit Function
Set folder = fs.getfolder(path)
Set subfolders = folder.subfolders
Set Files = folder.Files
For Each i In Files
If InStr(1, i.Name, Text1.Text, 1) Then
List1.AddItem i.path
End If
DoEvents
Next
For Each j In subfolders
digui (j.path)
Next
End Function

Private Sub Command1_Click()
If Command1.Caption = "搜寻" Then
Command1.Caption = "停止"
mStop = False
List1.Clear
Set fs = CreateObject("scripting.filesystemobject")
digui (Dir1.path)
If List1.ListCount = 1 Then

End If
Command1.Caption = "搜寻"
Else
Command1.Caption = "搜寻"
mStop = True
End If
End Sub

Private Sub Drive1_Change()
Dir1.path = Drive1.Drive
End Sub

Private Sub Form_Load()

End Sub

搜索程序已写好,就缺那个打开文件的程序,其实我要打一条码打印文件,文件类型为“ArgoBar Pro Document”,试了下面的都不成功
最佳答案
在上述代码的基础上,复制下面代码,即可实现你需要的功能!

Private Sub List1_DblClick() '
Dim S As String
Const Sh As String = "rundll32 url.dll,FileProtocolHandler ""#"""
S = List1.Text
Shell Replace(Sh, "#", S) '双击它打开文件或程序(所有注册类型的文件)
End Sub
全部回答
将文件夹中的文件列出,这个有多种办法,你可以引用FileObjectSystem或用Drive+Dir+File来实现,这个都不困难。关键你要在列表框打开选中的文件,这个有些问题,首先你的文件格式都不统一,打开方式也不一样,你可以根据文件扩展名来设置打开文件方式,不过写起来没那么容易。
什么问题?说清楚点。。 再看看别人怎么说的。
楼主,你不是写好了?递归遍历文件搜索吗? 不能实现搜索吗? 噢,搜索实现了,是想运行选择的文件吧? 我们知道,在windows系统中,能直接运行的只有三种文件,.exe .bat .com其他所有的文件都是通过调用这三种文件而运行的,所以有文件关联的概念.比如一个文本文件,1.txt吧,它的打开是由于windows设定好有notepad.exe文件运行调用1.txt所以我们才能使用,在VB中如果您想实现直接找到关联程序来运行文件那么请用一个api函数,既然您能写出递归,那么也有一定的编程水平了,api的声明等等就不用多解释了.下面的代码您试着在您的程序中用吧. Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long ShellExecute Me.hWnd, "open", fn, "", "", 1 'fn就是要打开的文件的绝对路径,比如c:\添加一个Dirve控件,Dri控件,和Film控件!在窗口中将会有三个控件、在Dri中编入:Dirve.path=Dri.dirve在Film中编入film.path=dri.divre!点F5运行。
打开 文件 可用 Dim SOpen as Object Set SOpen =Createobject("Wscript.Shell") Sopen.run List1.List(List1.ListIndex) 会自己启动相应的应用程序来打开文件
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
新华图文广告怎么去啊,有知道地址的么
安底娜娜涮牛肚地锅鸡在什么地方啊,我要过去
在淘宝第一个注册的人是谁?!
现在做足道按摩行业的怎么样?我想去学。我今
NOAINK6手机屏幕反应慢
古冶幸福广场这个地址在什么地方,我要处理点
人生若逆旅, 我亦是归人什么意思
按照我国《机动车交通事故责任强制保险条例》
川味烧烤我想知道这个在什么地方
哪些职业不受年龄限制或限制较少
教室照明灯具布置设计条件某教室平面如图,教
新买的电脑。怎么用不了word?让我安装office
Inteli5-4690k怎么样?Inteli5-4690k好吗
东阿单车驿站地址有知道的么?有点事想过去
430G2553采样正弦信号怎么办,由于正弦信号有
推荐资讯
鹤壁市汽车违章误判到哪里处理?
求截断的乐队中文字幕,最好加上高清的下载地
鸿运干洗店(鸿运干洗店)怎么去啊,我要去那办
现农业银行定期存款利息怎么算?
在西安做什么生意可以赚钱
如何判断匀强电场中电势差的大小知道电场线的
金泓源渔村地址有知道的么?有点事想过去
林荫街13号院地址在什么地方,想过去办事
log36 9+log6 12=
关于欧阳姓氏的优美词句
Amy’s主题娃娃机店地址有知道的么?有点事想
硫存在与哪些矿石中?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?