Drop down menu hta vbs使用文件夹中的文件填充下拉菜单

Drop down menu hta vbs使用文件夹中的文件填充下拉菜单,drop-down-menu,vbscript,onload,hta,auto-populate,Drop Down Menu,Vbscript,Onload,Hta,Auto Populate,使用Onload命令,我可以从messagebox中的文件夹中输出相关文件,但无法理解如何使用该信息填充html代码中的下拉菜单 Sub Window_onLoad LoadDropDown End Sub Sub LoadDropDown Dim dir, foundFile dir = zipfolder Dim fileNames, fso, folder Set fso = CreateObject("Scripting.FileSystemOb

使用Onload命令,我可以从messagebox中的文件夹中输出相关文件,但无法理解如何使用该信息填充html代码中的下拉菜单

Sub Window_onLoad
    LoadDropDown
End Sub

Sub LoadDropDown
    Dim dir, foundFile
    dir = zipfolder
    Dim fileNames, fso, folder
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(dir)
    For Each foundFile In folder.Files
        fileNames = foundFile.name
        If(Right(fileNames,4) = ".zip") then
        fileNames = Left(fileNames,(Len(fileNames)-4))
        Value = Value & fileNames & vbCr 
        MsgBox "inside sub Value : " & Value
    End If 
    Next
End Sub
这将为找到的每个扩展名为“.zip”的文件显示一个msgbox

令人困惑的部分是如何在下拉菜单中显示此信息(加载时)??? 我在下面遗漏了什么

<select id="test" name="test" onchange="LoadDropDown" style="width: 336px;">
        <option value=""></option>
        </select>

提前感谢您的帮助

这与: 他们没有使用文件过滤器,而且“填充”上的鼠标悬停不是必需的,甚至不是需要的。

以下是一个示例:

<html>
<head>

<script language="vbscript">

Sub Init
    document.getElementById("option1").innerText = "Sample 1"
    document.getElementById("option2").innerText = "Sample 2"
End Sub

</script>

</head>
<body onLoad="Init()">

<select id="test" name="test" style="width: 336px;">
    <option id="option1"></option>
    <option id="option2"></option>
</select>

</body>
</html>

亚初始
document.getElementById(“option1”).innerText=“示例1”
document.getElementById(“option2”).innerText=“示例2”
端接头

您可以这样尝试自动填充下拉菜单:

我已经在临时文件夹中测试了它,以填充
*.tmp
文件,因此您可以根据需要更改它

<html>
<HTA:APPLICATION ICON="magnify.exe"/>
<head>
<Title>Load DropDown Menu</Title>
<script language="vbscript">
Option Explicit
Dim ws,Temp,dir,objOption,Ext
Set ws = CreateObject("WScript.Shell")
Temp = ws.ExpandEnvironmentStrings("%Temp%")
Dir = Temp
Ext = "tmp"
'---------------------------------------------------------------
Sub Window_onLoad
    Call LoadDropDown(Dir,Ext)
End Sub
'---------------------------------------------------------------
Sub LoadDropDown(Dir,Ext)
Dim fso,folder,foundFile,fileNames,objOption,Count
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(Dir)
Count = 0
Call ClearListbox()
For Each foundFile In folder.Files
    fileNames = FSO.GetBaseName(foundFile)
    if Lcase(fso.getExtensionName(foundFile.path)) = Lcase(Ext) then
        Count = Count + 1
        Set objOption = Document.createElement("OPTION")
        objOption.Text =  Count & " - " & fileNames 
        objOption.Value = foundFile.path
        DropDown.Add(objOption) 
    End If 
Next  
End Sub
'---------------------------------------------------------------
Sub ClearListbox()
    For Each objOption in DropDown.Options
        objOption.RemoveNode
    Next 
End Sub
'---------------------------------------------------------------
Sub Explorer(File)
    MsgBox File
    ws.run "Explorer /n,/select,"& File &"",1,True
End Sub
'---------------------------------------------------------------
</script>
</head>
<select id="DropDown" name="DropDown" onchange="Explorer(DropDown.value)" style="width: 336px;">
</select>
</body>
</html>

加载下拉菜单
选项显式
尺寸ws、温度、方向、对象、分机
设置ws=CreateObject(“WScript.Shell”)
Temp=ws.ExpandEnvironmentStrings(“%Temp%”)
Dir=温度
Ext=“tmp”
'---------------------------------------------------------------
子窗口加载
调用加载下拉列表(目录、分机)
端接头
'---------------------------------------------------------------
子加载下拉列表(目录、分机)
Dim fso、文件夹、foundFile、文件名、对象选项、计数
设置fso=CreateObject(“Scripting.FileSystemObject”)
Set folder=fso.GetFolder(Dir)
计数=0
调用ClearListbox()
对于文件夹.Files中的每个foundFile
filename=FSO.GetBaseName(foundFile)
如果Lcase(fso.getExtensionName(foundFile.path))=Lcase(Ext),则
计数=计数+1
Set objOption=Document.createElement(“选项”)
Text=Count&“-”和文件名
objOption.Value=foundFile.path
下拉列表。添加(对象选项)
如果结束
下一个
端接头
'---------------------------------------------------------------
子ClearListbox()
对于下拉列表中的每个对象选项。选项
改造
下一个
端接头
'---------------------------------------------------------------
子资源管理器(文件)
MsgBox文件
ws.run“Explorer/n,/select,&File&”,1,True
端接头
'---------------------------------------------------------------
根据你最后的评论

如何在下拉列表框中添加多个扩展名文件


加载下拉菜单
选项显式
Dim ws、Temp、dir、对象、阵列扩展、外部
设置ws=CreateObject(“WScript.Shell”)
Temp=ws.ExpandEnvironmentStrings(“%Temp%”)
Dir=温度
ArrayExtensions=数组(“exe”、“bat”、“cmd”、“vbs”、“ps1”、“zip”、“rar”、“tmp”)
'---------------------------------------------------------------
子窗口加载
调用ClearListbox()
对于ArrayExtensions中的每个Ext
调用加载下拉列表(目录、分机)
下一个
端接头
'---------------------------------------------------------------
子加载下拉列表(目录、分机)
Dim fso、文件夹、foundFile、文件名、对象选项、计数
设置fso=CreateObject(“Scripting.FileSystemObject”)
Set folder=fso.GetFolder(Dir)
计数=0
对于文件夹.Files中的每个foundFile
filename=FSO.GetBaseName(foundFile)
如果Lcase(fso.getExtensionName(foundFile.path))=Lcase(Ext),则
计数=计数+1
Set objOption=Document.createElement(“选项”)
objOption.Text=“[”&Ext&“]-”&Count&“-”&foundFile.Name
objOption.Value=foundFile.path
下拉列表。添加(对象选项)
如果结束
下一个
端接头
'---------------------------------------------------------------
子ClearListbox()
对于下拉列表中的每个对象选项。选项
改造
下一个
端接头
'---------------------------------------------------------------
子资源管理器(文件)
MsgBox文件
ws.run“Explorer/n,/select,&File&”,1,True
端接头
'---------------------------------------------------------------

你拉了一个文件列表,但没有告诉它填充下拉列表,这有什么让人困惑的?如果您不熟悉DOM的使用,建议您从
Set dropdown=document.getElementById(“test”)
开始。这可能是重复的。正如你建议的那样,只需更改全局变量以满足我的需要,Temp、Dir和Ext,它就能完美地工作!!要删除计数,只需删除“count=count+1”并从:objOption.Text行中删除文件夹中每个foundFile的计数。Files fileNames=FSO.GetBaseName(foundFile)如果Lcase(FSO.getExtensionName(foundFile.path))=Lcase(Ext),则“count=count+1 Set objOption=Document.createElement”(“选项”)objOption.Text=fileNames objOption.Value=foundFile.path DropDown.Add(objOption)End If Next我刚刚注释掉了计数行并删除了objOption.Text行。Hackoo我需要更改代码的一部分。输出值=full dir name+file.ext如何将其更改为“file.ext”并从该值中删除整个路径?您应该这样编写Foundfile.name
<html>
<HTA:APPLICATION ICON="magnify.exe"/>
<head>
<Title>Load DropDown Menu</Title>
<script language="vbscript">
Option Explicit
Dim ws,Temp,dir,objOption,ArrayExtensions,Ext
Set ws = CreateObject("WScript.Shell")
Temp = ws.ExpandEnvironmentStrings("%Temp%")
Dir = Temp
ArrayExtensions = Array("exe","bat","cmd","vbs","ps1","zip","rar","tmp")
'---------------------------------------------------------------
Sub Window_onLoad
    Call ClearListbox()
    For each Ext in ArrayExtensions
        Call LoadDropDown(Dir,Ext)
    Next
End Sub
'---------------------------------------------------------------
Sub LoadDropDown(Dir,Ext)
Dim fso,folder,foundFile,fileNames,objOption,Count
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(Dir)
Count = 0
For Each foundFile In folder.Files
    fileNames = FSO.GetBaseName(foundFile)
    if Lcase(fso.getExtensionName(foundFile.path)) = Lcase(Ext) then
        Count = Count + 1
        Set objOption = Document.createElement("OPTION")
        objOption.Text =  "[" & Ext & "] - " & Count & " - " & foundFile.Name 
        objOption.Value = foundFile.path
        DropDown.Add(objOption) 
    End If 
Next  
End Sub
'---------------------------------------------------------------
Sub ClearListbox()
    For Each objOption in DropDown.Options
        objOption.RemoveNode
    Next 
End Sub
'---------------------------------------------------------------
Sub Explorer(File)
    MsgBox File
    ws.run "Explorer /n,/select,"& File &"",1,True
End Sub
'---------------------------------------------------------------
</script>
</head>
<select id="DropDown" name="DropDown" onchange="Explorer(DropDown.value)" style="width: 336px;">
</select>
</body>
</html>