注册 登录
编程论坛 VB6论坛

如可做到发现到有PDF文件后打开文件夹,没有PDF文件一直执行

cel 发布于 2021-09-26 20:19, 1875 次点击
Set fso = CreateObject("Scripting.FileSystemObject")
set f = fso.GetFolder("C:\Users\Administrator\Desktop\out\")
flag = false
for each item in f.files
if lcase(right(item.name,4)) = ".pdf" then
flag = true
exit for
end if
next
if flag then
createobject("wscript.shell").run "cmd /c start C:\Users\%username%\Desktop\out",2
end if
set f = nothing
set fso = nothing
8 回复
#2
约定的童话2021-09-27 07:11
换个思路,先全部循环遍历完指定文件夹,把pdf文件路径存储在数组内,完事后最后统一处理
#3
cel2021-09-27 09:45
刚学不久,不是很懂,在网上查了很多都不行,可否请版主帮写个出来!
#4
apull2021-09-28 15:07
监控文件夹,当有pdf则打开文件夹并退出运行。

程序代码:

Set oShell = CreateObject("WScript.Shell")
user=oShell.ExpandEnvironmentStrings("%UserName%")

Set fso = CreateObject("Scripting.FileSystemObject")
set f = fso.GetFolder("C:\Users\" + user + "\Documents\")

flag = false
while not flag
    for each item in f.files        
        if lcase(right(item.name,4)) = ".pdf" then        
            oShell.run "cmd /c start /min " + f ,2
            flag = true
            exit for
        end if
    next
    WScript.sleep 1000
wend
set oShell = nothing
set f = nothing
set fso = nothing


[此贴子已经被作者于2021-9-29 21:35编辑过]

#5
风吹过b2021-09-28 21:10
这代码执行起来,当这个目录下没有 PDF 文件时,不会卡死电脑来吗?
无限死循环。。。。。。。
在循环体中加入一行代码,
Sleep 10

后面这个参数表示程序挂起多少毫秒再继续。挂起程序时,会释放CPU,这样电脑不会被卡住。
挂起程序很短时间,不会对人操作电脑有多大影响。
sleep 是一个WIN API 函数,如果要申明时,请自行百度。

#6
cel2021-09-29 00:59
运行时提示找不到路径,C:\Users\%username%\Desktop\out\是否路径表达方式不正确?如换成C:\Users\Administrator\Desktop\out\就可以,但我是有多个用户用的,每个用户用同一个代码查找各自桌面上的文件夹。麻烦两位版主再帮帮忙修改一。
#7
hnhhzhb19772021-09-29 13:34
Set MYShell = CreateObject("WScript.Shell")
Text15.Text = MYShell.SpecialFolders("Desktop")

这样不管你是USERS 还是 Administ 或其他了
#8
apull2021-09-29 21:34
以下是引用cel在2021-9-29 00:59:24的发言:

运行时提示找不到路径,C:\Users\%username%\Desktop\out\是否路径表达方式不正确?如换成C:\Users\Administrator\Desktop\out\就可以,但我是有多个用户用的,每个用户用同一个代码查找各自桌面上的文件夹。麻烦两位版主再帮帮忙修改一。

代码改了下,你看看
#9
cel2021-09-30 00:37
多谢各位大神在帮助
1