Aplicaciones HTML (HTA)
(QR Code)¿Qué es una aplicación HTML?
Una aplicación HTML no es más que un archivo HTML que se visualiza como si fuera una aplicación con unas propiedades especiales en el HEAD que permiten especificar su nombre, tamaño, botones de Ventana….
Estas aplicaciones son interpretadas sobre Windows como si de ejecutables se tratase, para crear una aplicación HTA solo debemos renombrar una archivo HTML a HTA y añadir en el HEAD la etiqueta “<HTA:APPLICATION>” que contiene diversos atributos que podreis ver a fondo en el MSDN , algunos de estos atributos son por ejemplo “WindowsState” que indica si se inicia normal, maximizada o minimizada, “Icon” que especifica un icono de aplicación, “Showintaskbar” que indica si se puede visualizar en la barra de tareas o no. Todos estos atributos hacen relación simplemente a la apariencia de la aplicación.
Ejemplo:
<HTA:APPLICATION ID="oHTA"
APPLICATIONNAME="myApp"
BORDER="thin"
BORDERSTYLE="normal"
CAPTION="yes"
ICON=""
MAXIMIZEBUTTON="yes"
MINIMIZEBUTTON="yes"
SHOWINTASKBAR="no"
SINGLEINSTANCE="no"
SYSMENU="yes"
VERSION="1.0"
WINDOWSTATE="maximize"/
Problemas de seguridad.
Las aplicaciones HTA se ejecutan como aplicaciones locales, lo que permite ejecutar javascript, aplicaciones JAVA, ActiveX sin ninguna restricción en la maquina local.
Las aplicaciones HTA no dan información a los marcos o marcos flotantes que se ejecutan en su interior (no da el referer, ni dejan acceso al objeto window de javascript) pero esta limitación se puede eliminar en los iframes añadiendo el atributo application=”yes”
Por ultimo, los archivos solo funcionan en OS que tengan Internet Explorer 5.0 o superior (en el MSDN pone y solo en Sistemas Windows 32bits, pero también funciona en otras plataformas Windows como Windows 64 bits).
La referencia completa de las Aplicaciones HTML en el MSDN












Mi pregunta es la siguiente:
- Para crear una aplicacion para acceder a una base de datos nuestra, ¿ la tengo que crear como si fuese de asp?
porque no se encuentra apenas informacion basica de esta caracteristica, solo he podido coseguir crear un cutre block de notas, pero a pesar de su sencillez me costo bastabte crearlo.
16/03/2008 12:20
M.Cara, Tu pregunta es bastante “ambigua”.
Lo primero no se si quieres realizar una aplicacion de escritorio o una pagina web.
ASP es un lenguaje de Microsoft para realizar paginas web (bastante antiguo) Como otros lenguajes de programacion web tienes ASP.NET, PHP, PERL…
Si quieres realizar programas de escritorio tienes diferentes lenguajes (Vb, vb.net,c++,c#,Java,…)
Todos estos lenguajes tienen, partes especificas dedicadas al acceso a bases de datos ( MySQL, Oracle, SQL Server,…) …
Siento no poder dar una ayuda mas concreta, pero las posibilidades son muy amplias ^^, y dada tu pregunta creo que tienes muchas incognitas sobre la programacion. Deberias empezar por las bases buscando algun tutorial sobre algun lenguaje en concreto en el que quieras empezar, que tenga una intruccion que explique claramente el concepto de dicho lenguaje
16/03/2008 13:57
No es que tenga incognitas, por el momento controlo html y javascript con relativa soltura, pero no asp(Que es lo mismo, con pequeñas modificaciones aadidas), por eso queria algo de informacion, ya que no quiero hacerlo en VB de hacerlo quiero hacerlo en algo que se relacione con javascript ya que asi puedo controlar todo el codigo, ya que no se programar en BV.
(estoy preparando una base de datos para la gestion de un almacen, entradas y salidas )
La pregunta es porque quisiera realizar una aplicacion que interactue con una base de datos, realize una con html que buscaba y leia una base de datos creada en un block de notas, los registros separados por comas “,”
pero solo puedo realizar filtros y busquedas, no modificaciones directas. por eso lo de hta, para compararlo con asp, y decidir por donde sigo.
Gracias por las sujerencias y aclaraciones que digais, seran de gran ayuda.
11/05/2008 14:15
Siento decirte M.Cara que estas confundiendo términos por todas partes:
1.- HTML y ASP no son “lo mismo con pequeñas modificaciones”
2.- Un archivo de texto separado por comas no es una “base de datos”
3.- VB y javascript no son “lo mismo” en lenguajes de programacion
HTML (http://es.wikipedia.org/wiki/C%C3%B3digo_HTML) no es mas que un lenguaje de marcado que sirve para representar un contenido y el cual es interpretado por un navegador web. (Por lo tanto se puede ver incluso en tu pc con un navegador web)
Un lenguaje de programación web (o lenguaje del lado del servidor) requiere de un servidor que interprete dicho codigo, el cual a la vista del usuario “genera” HTML. (como ASP http://es.wikipedia.org/wiki/Active_Server_Pages o PHP http://es.wikipedia.org/wiki/PHP )
Por su parte javascript es un lenguajes “sencillo” destinado al lado del cliente, por lo que como lenguaje para paginas web no es una buena opcion
Por la parte de los datos, para el correcto manejo de datos se requiera una base de datos. La cual funciona a traves de un servidor o SGBD (http://es.wikipedia.org/wiki/Sistema_de_gesti%C3%B3n_de_base_de_datos)
Se podrían escribir libros sobre el tema. Y sobre todo sobre la diferenciación entre Diseño , maquetación y programación
Por lo que deduzco sobre tu comentario has aprendido algo sobre html e indagado sobre el resto de forma autodidacta, por lo que no tienes las bases básicas que se enseñan a los profesionales del sector.
Te recomiendo empezar “de cero” con algún tutorial o curso. Y sobre todo investigar un poco que es lo que estas usando, y por que es asi, ya que avanzar sin afianzar los conocimientos ateriores puede conducir a un callejón donde no entendamos que hacemos o por que no funciona lo que intentamos.
Los puntos que deberias conocer para empezar a mi juicio son:
1.- Que es HTML,que hace y como se usa.
2.- Que es un servidor Web y por que es necesario.
3.- Que una base de datos relacional.
Y finalmente un lenguaje de programación sobre web (ASP/ASP.NET,PHP,Java…) que es el que usa los 3 elementos anteriores para realizar nuestros propósitos
PD: hta es simplemente unas instrucciones para hacer que el HTML funcione de una forma similar a un programa, pero muy básico y solo con internet explorer.
11/05/2008 14:51
Ok lo se , no me he explicado bien
- Yo lo que he hecho en hta es un editor de textos. pero no tengo ni idea de como interactuar desde hta con bases de datos.
- En javascript consegui hacer una pequeña aplicacion que me permite leer un block de notas, como si se tratara de una base de datos, me explico, los datos del txt los tengo separados con comas , para poder utilizarlos, tamabien tengo creados filtros para separar los articulos, por su categoria con javascript, pero solo puedo leerlos y separarlos como yo quiera, me programo un filtro y lo pongo, pero solo puedo aceder en modo lectura al txt.
Ej de txt:
id, articulo,familia,stock,
01,PIV,procesadores,5
02,bluetooht,perifericos,8
03,T7700_SantaRosa,procesadores,2
en el java script puedo separarlos con un simple menu de seleccion, y que me aparezca en pantalla los datos que he filtrado, ya sea toda la lista o por seleccion convinada, ej: todos los procesadores que superen un stock de 3, eso no me es problema.
El problema es modificar esa cantidad, si creo un menu de factura, quiero que al realizar la supuesta venta me descuente del stock, de igual menra al comprar con otro menu incrementar la cantidad. ese es mi reto.
- Si creas una base de datos en acess tambien te da la opcion de guardar la base de acess en TXT, y veras como te los separa de la misma manera.( es solo como observacion)
Mi intencion es poder aceder a los datos y modificarlos. desde hta.
Crear un menu de entrada de stock, uno de consulta (que ya lo tengo creado en javascript) y otro para crear facturas que me descontara el stock (este lo creare mediante una busquera del articulo para localizarlo y descontarlo automaticamente)
Gracias por tu aportacion a mi problema Kuroneko
En asp si se puede, pero necesito un servidor, y queria evitarlo.
11/05/2008 16:21
los datos me da igual tenerlos en txt o casi mejor en una base de datos propiamente guardada en acess.
solo es por el tema de como modificarlos, ya que el editor de textos que he podido crear solo puedo poner texto, de momento alli no he conseguido nada mas, sin formatos ni colores,
11/05/2008 16:26
este es el codigo de mi editor de texto
editor texto
MI texto de pruevas
c:\TEST.TXT
Aplicacion HTA permite crear textos en formato TXT
Guardarlo como HTA
Ya te dije al principio del post de que a pesar de ser sencillo me costo mucho crearlo, cuando lo iejecutes te dara un error, tengo que solucionarlo, pero funciona igualmente.
MI intencion es crear una aplicacion completa, pero ya se que tardare mucho en conseguirlo. aun mas programando solo en javascript,
11/05/2008 16:48
editor texto
MI texto de pruevas
c:\TEST.TXT
Aplicacion HTA permite crear textos en formato TXT
11/05/2008 16:50
!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
html>
head>
title>editor texto
meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″>
script language=”JavaScript” type=”text/javascript”>
!–function readFile()
{
var fso,fileHandle,contents;
fso=new ActiveXObject(”Scripting.FileSystemObject”);
fileHandle=fso.OpenTextFile(”c:\\testo_ZAS.txt”,1);
contents=fileHandle.ReadAll();
if(contents)document.all(”fileContents”).value=contents;
fileHandle.close();
}
function writeFile()
{
var fso,fileHandle;
fso=new ActiveXObject(”Scripting.fileSystemObject”);
fileHandle=fso.createTextFile(”c:\\test.txt”,true);
fileHandle.write(document.all(”fileContents”).value);
fileHandle.close();
}
–>
/script>
/head>
body onLoad=”writeFile()”>
h2>MI texto de pruevas
tt>c:\TEST.TXT
form>
textarea id=”fileContents” cols=”50″ rows=”15″>Aplicacion HTA permite crear textos en formato TXT
br>
input type=”button” value=”Leer el fichero” onclick=”readFile()”>
input type=”button” value=”Escribir al fichero” onclick=”writeFile()”>
/body>
/html>
11/05/2008 16:51
he borrado los ” < ” del principo de linea
, porque no me dejaba copiarlo en el post
11/05/2008 16:52
Dudo mucho que lo que deseas se pueda realizar en javascript dadas las limitaciones de este lenguaje. No solo por ser un lenguaje orientado a ciertas operaciones web, si no también por la seguridad que los navegadores implementan, ya que permitir que se puedan modificar los archivos de un usuario “como si nada” es un gran agujero de seguridad.
El lenguaje y tecnologías que estas usando no están pensadas para el propósito que les estas dando. Para realizar una aplicación de “escritorio” deberías usar un lenguaje de programación (C#,VB.NET C++, JAVA, …) y no un lenguaje de “script” indicado para unas simples operaciones sobre web que no esta preparado para los usos complejos para los que se usan otros lenguajes de programación.
Me parece muy loable lo que estas consiguiendo con lenguaje javascript y HTML (pese a que no pueda verlo ) pero estas tomando un rumbo equivocado al intentar usar tecnológicas de programación Web para usarlas en aplicaciones de cliente.
11/05/2008 16:59
este es el codigo que acede a leer el TXT, siempre que lo guardes con el formato con el que indique antes-
Html>
Head>Lectura de datos
Script language=”JavaScript”>
!–
function Anterior(){
while (ListaArticulos.recordset.AbsolutePosition > 1){
ListaArticulos.recordset.MovePrevious();
if ( (document.Datos.Modelo.value == document.Entrada.Mbusca.value) ||
(document.Entrada.Mbusca.value == “”) ){
return true;
} //del if
} //del while
alert (’Primer Registro’);
} //de la funcion
function Siguiente(){
while (ListaArticulos.recordset.AbsolutePosition
/Script>
Body>
H3> Articulos
Object ID=”ListaArticulos”
Classid=”clsid:333C7BC4-460F-11D0-BC04-0080C7055A83″>
Param Name=”DataURL” Value=”Stock.txt”>
Param Name=”UseHeader” Value=”true”>
/Object>
Form name=”Entrada”>
Modelo a buscar:
Input Type=”Text” name=”Mbusca” size=20 maxlength=20>
/Form>
Form name=”Datos”>
Table border=1>
Tr>
Td>Modelo:
Td>
Td>Referencia:
Td>
/Tr>
Td>Familia:
Td>
Td>Precio:
Td>
/Tr>
/Table>
/Form>
Espero que te sirva como curiosidad, el poder del Javascript con html, ahora sabes lo que pretendo.
crear una aplicacion HTA para poder controlar la entrada de stock y las ventas mediante un sencillo sistema de factura( esta descontara automaticamente el stock al aceptar la factura es facil. lo dificil para mi es aceder a modificar los datos (acess o TXT no importa ) Dode tendre la bases de datos de todo lo que necesite
Gracias otr vez y perdona esta saturacion del post
11/05/2008 17:04
no me copia el codigo, hagggg ,
11/05/2008 17:06
El sistema Anti-SPAM bloquea los comentarios “RAROS” asi que tardan mas en aparecer, y al aparecer borran lo que no debería estar (va… por que si no me pueden meter código en la pagina para ejecutarlo xD)
11/05/2008 17:10
ok gracias, no molesto mas, si quieres el codigo por tenerlo como curiosidad dime como te lo puedo pasar, solo por simple interes,( se me corta al colgarlo en el post) y por la curiosidad del porder de este limitado lenguaje, pero es que no se programar en otro ( me siento muy limitado)
Gracias por el consejo, mirare de hacerlo desde excel (para las modificaciones ) y acess (para los datos)
no controlo mucho de acess y de excel solo a nivel medio, pero voy a cambiar el rumbo tal y como me sugieres. MUchas gracias
11/05/2008 17:11
Tambien puedes probar a usar otro lenguaje, por ejemplo C#, que una vez aprendidas algunas cosas es bastante
sencillo.
Te puedes descargar el entorno de desarrollo de :
http://www.microsoft.com/spanish/msdn/vstudio/express/VCS/default.mspx
La version Express es gratuita (te tienes que registrar despues, pero es gratuito)
Tambien hay numerosos tutoriales para aprender este lenguaje:
ej:
http://www.programacionfacil.com/csharp_net/start
o
http://www.canalvisualbasic.net/temarios/manual_c_sharp.asp
11/05/2008 17:22
Pero ?¿ C C++ o C# no es necesario saber como funciona el llamado armazon de windows?¿, perdona si te pregunto una salvajada, pero programando para entornos graficos? me sera muy dificil, , tengo algun compilador de c++, pero todo lo que salga del entorno msdos de salida ni idea, en c solo he podido crear tonterias demasiado basicas como una calculadora o cualquier tipo de operacion matematica, pero nunca me funciona fuera del compilador, la pantalla de msdos o cmd se cierra al terminar automaticamente, y si le añado que ahora lo quiero grafico ?¿ no se si sere capaz. lo deje de lado porque no fui capaz de crear nada visual.
Voy a mirar los enlaces, me sujieres alguna alternativa o crees que seria mejor ponerme en serio en c# , estube mirando VB pero los algoritmos cambian un poco, bastante de C a VB,
- Voy a mirar los enlaces y sobre todo los manuales
11/05/2008 17:33
C# Funciona sobre el Framework de .NET , no es necesario saber nada de la API de windows. Tiene su propio conjunto de clases (Ensamblados) y es muy sencillo de utilizar (Comparando sobretodo con C++)
Para hacer una ventana basta con hacer “Nuevo -> Ventana” en uno de los menos, para agregar controles solo hay que colocarlos, de forma similar a como se haría con un editor WYSIWYG para HTML, todas esas tediosas operaciones que se hacían antes para crear ventanas no son necesarias en .NET
Te animo a que lo instales y pruebes un poco.
11/05/2008 17:51
Asi lo hare. Una vez mas gracias por tu tiempo y por los consejos que me has dado,
Un Saludo
11/05/2008 18:41