no entiendo:
Example usage:
lister.vbs "c:\documents and settings"
Es un script que requiere argumentos, es decir, lo tienes que usar desde la consola pasándole como argumento el nombre de una carpeta que quieras listar... tál y como en ese ejemplo.
Creo que más bien lo que quieres es un TreeView, un Listbox quedaría fatál visualmente hablando, aparte de que el resultado sería gigantesco si listas +1.000 archivos...
Podría decirte lo que llevo diciendote desde que te pusiste con HTA... ya sabes que...
Podría explicarte como hacer un treeview en menos de 5 minutos, y debes saber que se puede agregar un navegador totálmente funcional simplemente EN UN CLICK, pero no me vas a hacer caso, ¿A que no? xD.
Y yo... paso de complicarme en HTA porque no sé lo suficiente,
Bueno, si quieres seguir por el camino más dificil, con esto tienes por donde empezar:
- Un treeview con eventos cuando clickas sobre un item
- he modificado el VBS de tu ejemplo para que trabaje sin argumentos
La idea de lo que debes hacer es muy sencilla, llamar al sub "get_files" y por cada archivo procesado en el FOR (donde está el msgbox), generar un nodo/item en el "listview" como en los ejemplos que ya hay en el code.
PD: Yo no sé como ejecutar ordenes de JS desde VBS, así que es cosa tuya o de quien sepa!
<META content = "TEXT/HTML; charset=Windows-1251"> <HTA:APPLICATION ID="exTreeView"
ApplicationName = "TreeView_HTA"
BORDER = "thin"
INNERBORDER = "no"
CONTEXTMENU = "no"
MAXIMIZEBUTTON = "no"
MinimizeButton = "no"
SysMenu = "yes"
SELECTION = "no"
SHOWINTASKBAR = "yes"
SCROLL = "no"
SINGLEINSTANCE="yes"
WindowState = "Normal"
/>
<BODY bgcolor = "#EEEEEE" ONLOAD = "LoadForm()"> <TABLE style = width:100%> <TR><TD style = width:30%> <OBJECT ID = ExampleTreeView WIDTH = 250 HEIGHT = 550 PROGID = "MSComctlLib.TreeCtrl.2" CLASSID="clsid:C74190B6-8589-11D1-B16A-00C0F0283628"> <param name = "LineStyle" value = "1" /> <param name = "Style" value = "7" /> <param name = "Appearance" value = "0"/> <param name = "BorderStyle" value = "1"/> <INPUT type = "button" name = "fill" value = "Listar ..."> <SCRIPT for = ExampleTreeView event = NodeClick> WSH.Popup(mForm.all("ExampleTreeView").SelectedItem,0,"Ïðèìåð");
var WSH = new ActiveXObject("WScript.Shell");
function LoadForm()
{
window.resizeTo(800,600);
};
function filltreeview()
{
var TreeView = mForm.all("ExampleTreeView");
TreeView.Nodes.Clear();
var Root = TreeView.Nodes.Add();
Root.Text = "Directorio";
Root.key = "root";
var Node = TreeView.Nodes.Add();
Node.Text = "Subcarpeta2";
Node.key = "branch1";
Node.Parent = Root;
var Leaf = TreeView.Nodes.Add();
Leaf.Text = "archivo2";
Leaf.key = "leaf1";
Leaf.Parent = Node;
var Leaf = TreeView.Nodes.Add();
Leaf.Text = "archivo1";
Leaf.key = "leaf2";
Leaf.Parent = Node;
var Node = TreeView.Nodes.Add();
Node.Text = "Subcarpeta1";
Node.key = "branch2";
Node.Parent = Root;
var Leaf = TreeView.Nodes.Add();
Leaf.Text = "archivo2";
Leaf.key = "leaf3";
Leaf.Parent = Node;
var Leaf = TreeView.Nodes.Add();
Leaf.Text = "archivo1";;
Leaf.key = "leaf4";
Leaf.Parent = Node;
};
mForm.all("fill").onclick = filltreeview
sub Get_Files()
On Error Resume Next
Dim fso, folder, files, NewsFile,sFolder
Set fso = CreateObject("Scripting.FileSystemObject")
sFolder = Wscript.Arguments.Item(0)
Set NewFile = fso.CreateTextFile("C:\FileList.txt", True)
Set folder = fso.GetFolder("C:\")
Set files = folder.Files
For each folderIdx In files
msgbox(folderIdx.Name)
Next
NewFile.Close
end sub
Saludos.