File list VBScript

Iniciado por z3nth10n, 21 Enero 2013, 19:52 PM

0 Miembros y 3 Visitantes están viendo este tema.

z3nth10n

Hola amigos, pues bien necesito hacer una simple lista de archivos que muestre una carpeta, el problema es:

Lo quiero hacer en HTML (HTA) Electrooooorl
Y que cuando haga click a un archivo se cambie un src de un iframe...

Como lo podria hacer?

Un saludo.

He buscado y he encontrado esto:

http://www.go4expert.com/forums/showthread.php?t=927

pero no entiendo:

Citar
Example usage:

lister.vbs "c:\documents and settings"

Con este otro se puede, pero te muestra todo en alerts, yo quiero algo asi como un FileListBox, DirListBox de VB6... Y si no, elecktro buscame tutoriales de como hacerlo, no se como buscar, para hacer un emulador de algo. Aunque prefiero hacerlo en HTML ya que es mucho mas facil. :)

Lo que quiero hacer es un emulador de Unity, pero ahora que pienso, es mas facil hacer un emulador de paginas HTML que un iframe cambiante xD No se... el caso...

Es que podria buscar como hacer un navegador web en VB6 (con un objeto OLE de IE) que se como hacerlo, y luego un DirListBox y un FileListBox (aunque tendria que buscar los manuales del Win 2000. Y luego... aunque n ose como hacerlo... Tendria que saber como cambiar la direccion del objeto OLE al pulsar sobre cierto archivo. Que seria como decir que this file = web dir (ole)...

Ya vere... Durante lo que yo voy a hacer os dejo la duda.

Un saludo.

Interesados hablad por Discord.

Eleкtro

#1
Cita de: Seazoux en 21 Enero 2013, 19:52 PMno 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!

Código (html4strict) [Seleccionar]
<HTML>
<HEAD>
<META content = "TEXT/HTML; charset=Windows-1251">
<TITLE>TreeView en HTA</TITLE>
<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"
/>

</HEAD>
<BODY bgcolor = "#EEEEEE" ONLOAD = "LoadForm()">
<FORM ID = mForm>
<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"/>
</OBJECT>
</TD>
<TD>
<INPUT type = "button" name = "fill" value = "Listar ...">
</TD></TR>
</TABLE>
</FORM>
<SCRIPT for = ExampleTreeView event = NodeClick>
WSH.Popup(mForm.all("ExampleTreeView").SelectedItem,0,"Ïðèìåð");
</SCRIPT>
<SCRIPT language = "JScript">

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

</SCRIPT>


</SCRIPT>
<SCRIPT language = "Vbs">

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
</SCRIPT>


</BODY>
</HTML>


Saludos.








z3nth10n

Le dije a mi padre que me pusiese el VB.net (VB 8)

Y porque quedaria visualemtne feo? Mira esto:



Yo quiero hacer un FGEmulator, pero en vez de reproducir unicamente flash simplmente cambiaria ese objeto OLE (flash) por uno que reproduzca codigos HTML.

Aunque bueno. Para flash si se puede no tengo ni idea si unity se le puden meter arcihoc senteros voy a probar y te digo. Un saludo.

Interesados hablad por Discord.

Eleкtro

#3
Cita de: Seazoux en 22 Enero 2013, 07:30 AMLe dije a mi padre que me pusiese el VB.net (VB 8)

VB8 es Visual Basic 2005, vamos que si te instalas esa porquería vas a retroceder en tus progresos como si estuvieras programando en el VB6,
lo que debes instalarte es VB 11 (Visual Basic 2012), es decir, Microsoft Visual Studio 2012.

Aquí lo tienes (para 64 Bit) : By Elektro H@cker > [APORTE] MEGA-PACK para iniciarse en VS2012 x64 (Instalador + Recursos + Tools)

Cita de: Seazoux en 22 Enero 2013, 07:30 AMY porque quedaria visualemtne feo?
Si esa es la idea de menú que tienes pues entonces no está mal con un listbox, a esa aplicación le queda bien el listbox,
yo he visto paneles de emuladores que tienen un arbol de directorio con las roms y lo veo mejor, como el ejemplo del HTA, sobretodo por el tema de los subdirectorios... depende del gusto de cada uno xD.

Cita de: Seazoux en 22 Enero 2013, 07:30 AMuno que reproduzca codigos HTML.
En esta parte me he perdido... ¿reproducir?

PD: No todos somos unos viciados a los juegos ni sabemos que coj*nes es Unity '¬¬.

EDITO: PD2: En el botón que has marcado en rojo, bueno, no me he bajado el emulador pero ni falta que hace, al clickarlo no saldrá un "treeviewlist", saldrá el explorador de carpetas de Windows, es decir un "Browser folder dialog", ¿Lo estás confundiendo?.

Saludos








z3nth10n

Esto de las versioes es un puto lio. En fin, el VB.net no se que version es esa, no se si es el Visual Basic 2008 o cual es, en fin. xD

Lo que digo con un reproductor HTML es poner un Objeto OLE con una API de IE que se como hacerlo y luego pon el Path hacia la carpeta que selecciones en el formulario ese raro (el primero). xD

Y luego si quieres cambiar de carpeta porque viene ya uno por defecto, pues tienes el Browser folder dialog o lo que sea xDD

Tengo que saber como cambiar la direccion web del objeto OLE a la del archivo que selecciones en el FileListBox xD

Se mucho, sobre lo que he practicado (empece con 11 años y medio a usar el VB6) y luego lo deje, pero bueno aprendi a hacer 3 o 4 gilipolleces xD Y he perdido toda la practica, es decir, que me tengo que poner a praticar como un loco esta tarde. XD

Cuando termine de hacer lo que voy a hacer esta tarde te pregunto por el codigo de "Como cambiar la direccion web del objeto OLE a la del archivo que selecciones en el FileListBox"

Un saludo.

Interesados hablad por Discord.

Eleкtro

Cita de: Seazoux en 22 Enero 2013, 12:13 PMCuando termine de hacer lo que voy a hacer esta tarde te pregunto por el codigo de "Como cambiar la direccion web del objeto OLE a la del archivo que selecciones en el FileListBox"

Pues me vas a preguntar justo lo que no entiendo que quieres decir...

Antes dijiste "reproducir un código htm", y ahora dices que quieres hacer un reproductor HTML?, ¿Que quieres decir con Reproductor HTML?, ¿reproductor de que? ¿video, audio, porno xD?, macho, explícate, en serio.

PD: Quizás no haga falta decir lo siguiente, pero por si acaso... si te pones a usar el VS2012 (o VB11)  haz tus preguntas en el subforo de .NET (No aquí, ni en el de visual basic)

Saludos








z3nth10n

Cita de: EleKtro H@cker en 22 Enero 2013, 13:04 PM
Pues me vas a preguntar justo lo que no entiendo que quieres decir...

Antes dijiste "reproducir un código htm", y ahora dices que quieres hacer un reproductor HTML?, ¿Que quieres decir con Reproductor HTML?, ¿reproductor de que? ¿video, audio, porno xD?, macho, explícate, en serio.

PD: Quizás no haga falta decir lo siguiente, pero por si acaso... si te pones a usar el VS2012 (o VB11)  haz tus preguntas en el subforo de .NET (No aquí, ni en el de visual basic)

Saludos

Simplemente digo, reproducir un codigo HTML que está en un archivo HTML que contiene el juego Flash, Unity, Java o lo que sea, mediante un objeto OLE, que esta dentro de la ventana del programa. Ya? xD

Ahora, necesito hardcodear un poquito mas la cosilla, como tu bien sabes para conseguir un swf necesitamos ir a Google Chrome (o el navegador que usemos) darle a Inspeccionar elemento (en el caso del Google Chrome), justo al lado del Flash y buscar la etiqueta <object>, esto lo quiero hacer desde VB.net, 6 o lo que sea (en mi caso VB.net)... ¿Como lo podriamos hacer? Yo he pensado en varias soluciones, o bien que el programa se descargue en %temp% la pagina en formato .html y que vaya buscando cadenas de texto ue empiezen por "http://" y acaben por ".swf", se podria hacer, pero no se si es posible desde la misma web, sinque  se tenga que guardar la direccion web en formato -html dentro de la carpeta %temp%, seria posible? Como se haria?

Un saludo. xD

Interesados hablad por Discord.

Eleкtro

Cita de: Seazoux en 22 Enero 2013, 14:59 PMdigo, reproducir un codigo HTML que está en un archivo HTML que contiene el juego Flash

No, sigo sin entenderlo, ¿que instrucciones contiene ese código?

Si lo que quieres es parsear un html puedes usar la librería htmlagilitypack, o puedes hacerlo al modo tradicional (split, replace, etc...),
puedes almacenar el texto del html en una variable de tipo String para ahorrar unos miserables KB de espacio en el disco si quieres xD, y hacerle substrings en la variable junto a los otros methods que he mencionado...

De todas formas te repito lo anterior, la próxima duda de VB.NET a .NET y/o las de VB6 e inferiores a Visual Basic, no me hagas cerrar el post  :P.

Saludos








z3nth10n

#8
LOL, simplemente en vez de descargar el swf utilizamos un html que lo contenga, porque? porque luego el unity no se puede poner como un archivo, tienes que indexarlo desde html, asique pare generalizar todo, pues... eso... xD

En fin y porque me cierras el post si pregunt odudas de VB.net o VB6? Esto noes la cateogria de Scripting? LOL.

:-\




Ademas lo que tu me has pasado se supone que esta bien como está pero en fin, como se hace para que se identifique las carpetas y todo eso xDDDDD




Debo leer mas xD Ya ni recordaba que me lo explicabas, pero paso de complicarme asi que... me pongo en el VB y ya. :)

Interesados hablad por Discord.

Eleкtro

Cita de: Seazoux en 22 Enero 2013, 15:40 PMporque me cierras el post si pregunt odudas de VB.net o VB6?
Esto noes la cateogria de Scripting? LOL.

Exáctamente por esa razón, si consideras .NET o VB6 como scripting entonces aún te queda demasiado por aprender.

Solo era un aviso de buen rollo para que sigas las normas, hay que llevar el ordén en el foro y aquí no se tratan esos temas.

Cita de: Seazoux en 22 Enero 2013, 15:40 PMlo que tu me has pasado se supone que esta bien como está pero en fin, como se hace para que se identifique las carpetas y todo eso xDDDDD

paso de complicarme asi que... me pongo en el VB y ya. :)

A esa pregunta no sé si contestar, te diría como "identificar" en el código del VBS y hacerlo recursivo, pero para que luego no sepa(mos) hacer que el JS reciba la variable es perder el tiempo.
tu ponte al vbnet, haz la pregunta adecuada en el subforo adecuado y yo te ayudo (u otros miembros del foro), pero no te lo voy a dar todo hecho (para que así aprendas a hacerlo).

un saludo