Hice un script .hta (vbs+html) que mostraba info de la caducidad del password, para que una vez quedaran solo un par de dias de vigencia al pwd estuviera siempre visible un aviso, es decir, un aviso que estuviera "always on top", el caso es que ni el motor que procesa los vbs (wscript/cscript) ni el de los hta (mshta.exe) tenian esta opcion de ningún modo.
Para poner una aplicación always on top hay que invocar las APIs de Windows y mediante vbs parece ser que tampoco se puede.. o eso creia..
Buscando en cientos de foros, veo que todos afirman que solo es posible con terceros programas (powermenu, autoit, etc) donde hay que instalar el programa, o crear un activex e instalarlo, o tener un exe hecho en VB aparte del script donde se declara la funcion de la API para que haga la función deseada y luego invocarlo..
En definitiva es bastante engorroso y pierde en parte su utilidad el script si depende de otro programa.
Pues segun parece hay una manera mucho más simple y que se puede hacer desde el propio script, sin tener que instalar ningún programa ni depender de un .exe por ahi suelto (bueno en cierto modo si..) pudiendo asi usar todas las APIs y darle mucha mas potencia a nuestros scripts.
El truco es tan simple como invocar al Excel (es decir, dependemos de tener el Office instalado) y pasarle una macro desde el script que invocará la API que queramos.
Para mi, en una plataforma típica de PCs Windows XP + Office 2003 el script me va perfecto sin tener que depender de ningun programa (salvo el excel) ni instalar nada adicional de lo que ya había.
Ejemplo:
Código:
Set Application=CreateObject("Excel.Application")
hwnd=Application.ExecuteExcel4Macro("CALL(""user32"",""FindWindowA"",""JJC"",0,""Calculadora"")")
RC=Application.ExecuteExcel4Macro("CALL(""user32"",""SetWindowPos"",""JJJJJJJJ""," & hwnd & ",-1,0,0,0,0,3)")
Ejecutar calc.exe y luego ejecutar el script.
Una vez ejecutado quedará "always on top" la calculadora hasta que se cierre.
Este truquito lo he encontrado en un blog japonés sobre scripting.
http://scripting.cocolog-nifty.com/blog/2007/02/win32apicall_b558.html
Saludos