pramo | PRAMOSOFTWARE.WORDPRESS.COM
pramo
PRAMO
: DOCUMENTACIÓN | 1
pramo | PRAMOSOFTWARE.WORDPRESS.COM
solución multipropósito para automatizar procedimientos mediante acciones y condiciones de forma clara y sencilla
PRAMO
: DOCUMENTACIÓN | 2
pramo | PRAMOSOFTWARE.WORDPRESS.COM
beta 7 Diciembre, 2017
[email protected] http://pramosoftware.wordpress.com
PRAMO
: DOCUMENTACIÓN | 3
pramo | PRAMOSOFTWARE.WORDPRESS.COM
ÍNDICE DE CONTENIDO |01. licencia de uso.........................................................................................................5 |01.1. copyrights y marcas registradas....................................................................6 |02. información general...............................................................................................7 |02.1. pramo — su conveniencia...............................................................................8 |03. uso...........................................................................................................................10 |03.1. tutorial — introducción.................................................................................11 |03.2. tutorial — primeros pasos............................................................................14 |03.3. tutorial — erratas, errores y fase de adaptación.......................................16 |03.4. tutorial — acciones y macros.......................................................................19 |03.5. tutorial — complicaciones menores............................................................22 |03.6. tutorial — situaciones condicionadas.........................................................24 |03.7. tutorial — situaciones condicionadas II.....................................................25 |03.8. tutorial — sinopsis de fin de línea opcional...............................................27 |03.9. tutorial — bucles............................................................................................28 |04. ejemplos aplicados................................................................................................30 |04.1. ejemplo — aplicaciones en autoarranque..................................................31 |04.2. ejemplo — carga de listas de páginas web.................................................32 |04.3. ejemplo — optimizaciones básicas en el sistema operativo....................34 |04.4. ejemplo — capturas de pantalla temporizadas.........................................36 |05. dudas y preguntas.................................................................................................38 |05.1. sobre el diseño de pramo..............................................................................39 |05.2. sobre el uso de pramo...................................................................................42 |06. problemas conocidos............................................................................................45 |07. historial...................................................................................................................46 2017/12 - beta 7.................................................................................................................................. 47 2017/06 - beta 6.................................................................................................................................. 52 2016/12 - beta 5.................................................................................................................................. 55 2016/07 - beta 4.................................................................................................................................. 59 2015/08 - beta 3.................................................................................................................................. 62 2014/07 - beta 2.................................................................................................................................. 64 2014/04 - beta 1.................................................................................................................................. 65
PRAMO
: DOCUMENTACIÓN | 4
pramo | PRAMOSOFTWARE.WORDPRESS.COM
|01. licencia de uso Las versiones beta -o en desarrollo- de Pramo (habitualmente estilizado como "pramo", sin comillas y en minúsculas) se distribuyen bajo la licencia de uso que establecen las siguientes cláusulas y condiciones: 1.
2.
3.
4.
5.
6.
7.
Este programa -entendiéndose "este programa" y "el programa" por Pramo, aquí y en lo sucesivo- es gratuito y libre de ser usado por cualquiera. El programa se ofrece sin garantía de fiabilidad, eficacia o exención de fallos de diseño y funcionalidad. El usuario -es decir, cualquiera que emplee este programa y sus funciones, ya sea persona física o jurídica- lo utiliza bajo su propia responsabilidad. El autor del programa no será responsable de los daños derivados a causa de la utilización o mal uso del mismo, incluso si ya hubiera sido advertido de la posibilidad de tal daño o error. El autor promueve el uso ético y honesto del programa, de manera que el usuario acepta emplearlo sin propósitos maliciosos, dañinos o engañosos. Tales actos invalidan la licencia de uso a cualquier usuario. Si el usuario no está de acuerdo con todas las condiciones indicadas anteriormente carecerá de licencia para utilizar Pramo. Al hacer uso del programa el usuario acuerda reconocer como vinculantes todas las cláusulas indicadas anteriormente.
Pramo beta 7 — Diciembre, 2017 Copyright © 2014-2017 Santiago G. Rojo Todos los derechos reservados.
|notas: · Las versiones beta dejan de funcionar después de ocho meses tras haber sido publicadas. ·
Descargue Pramo de nuevo para ampliar el tiempo de uso. Se recomienda no modificar la fecha de sistema azarosamente, habida cuenta de las posibles repercusiones tanto en el sistema operativo como en los programas que accedan a Internet u otras redes.
PRAMO
: DOCUMENTACIÓN | 5
pramo | PRAMOSOFTWARE.WORDPRESS.COM
|01.1. copyrights y marcas registradas Pramo -tanto el programa como su código fuente, logo e icono y toda la documentación pertinente- es propiedad intelectual de su autor, Santiago G. Rojo. Toda la información aquí indicada engloba y se refiere a este documento y el documento anexo de vocabulario. El logo/icono de Pramo contiene la tipografía Lobster Two, propiedad de Impallari Type y empleada bajo la SIL Open Font License, 1.1. En la documentación de Pramo se han utilizado las siguientes tipografías: · Droid Sans Mono - Propiedad de Google y empleada bajo la Licencia Apache 2.0. · Noto Sans UI - Propiedad de Google y empleada bajo la Licencia Apache 2.0. · Ubuntu - Propiedad de Canonical Ltd. y empleada bajo la Licencia Ubuntu Font 1.0. Microsoft®, Windows®, Windows XP™, Windows Vista™, Windows 7™, Windows 8™, Windows 10™ y Windows Server® son marcas comerciales o marcas comerciales registradas de Microsoft Corporation en Estados Unidos de América y otros países. Otros productos y marcas protegidas con derechos de copia y explotación cuyos nombres sean mencionados -tanto en el programa como éste u otros documentos- pero no directamente acreditados están registrados por sus respectivas compañías / propietarios y como tales son reconocidos.
PRAMO
: DOCUMENTACIÓN | 6
pramo | PRAMOSOFTWARE.WORDPRESS.COM
|02. información general Este programa realiza automatizaciones de eventos, de forma clara y sencilla, empleando su propio lenguaje basado en órdenes en español a través de un fichero de texto que no necesita ser preprocesado. Esta mecánica permite establecer múltiples acciones y condiciones -cada una de ellas llamada sinopsis- y diferentes tipos de lógica y comportamiento en distintos ficheros, de forma que estos puedan ser invocados instantáneamente con independencia unos de otros. Un fichero de sinopsis puede ser creado con un editor de texto cualquiera y será interpretado directamente por Pramo. Así pues, no requiere de ningún programa externo, entorno de desarrollo, compilador o librerías adicionales para hacer uso de todas las posibilidades disponibles. El funcionamiento es tan simple como arrancar Pramo y seleccionar el fichero de sinopsis -el fichero de texto- en la ventana que aparece — o, alternativamente, indicar la ruta de ese fichero como parámetro. Si el programa no opera como pretendía o se cometió un error de sintaxis es posible activar el modo de depuración que generará un informe -en un fichero de texto fácil de entender- por cada fichero de sinopsis, el cual incluirá toda la secuencia de acciones realizadas, indicando también los errores o problemas encontrados.
Este programa es completamente portátil e independiente. No sólo es autocontenido sino que ni siquiera requiere grabar información en su propia carpeta. Al borrar la carpeta que lo contiene queda eliminado completamente, por lo que no se suministra un desinstalador. Pramo respeta la privacidad de sus usuarios y es un programa libre de malware: todas las versiones son analizadas por una extensa batería de antivirus previo a su publicación. Pramo es compatible con las versiones 32 y 64 bits de sistemas Microsoft Windows 10, 8, 7, Vista y XP (SP3), incluyendo las versiones Server equivalentes.
|en esencia: · Pramo es una solución para automatizar eventos. · Sus posibilidades abarcan multitud de tareas e interacciones con el sistema operativo. · La gestión se realiza mediante órdenes en español, las cuales son autodescriptivas. · Esas órdenes -la sintaxis- se denominan sinopsis, · · ·
y las recibe a través de ficheros en texto plano, llamados ficheros de sinopsis. Para ejecutar las órdenes de un fichero de sinopsis ha de buscarse su ubicación utilizando la interfaz del programa o, alternativamente, indicar la ruta completa mediante un parámetro. Los errores pueden trazarse hasta su origen activando un informe de depuración claro y específico por cada fichero de sinopsis. Pramo es una herramienta autónoma y portátil, sin requisitos o dependencias.
PRAMO
: DOCUMENTACIÓN | 7
pramo | PRAMOSOFTWARE.WORDPRESS.COM
|02.1. pramo — su conveniencia ¿Para quién está diseñado Pramo? Para nadie, por tanto, para todos. ¿Cuál es el uso preferible de Pramo? Ninguno, es decir, cualquiera.
Pramo es un programa para que lo utilicen las personas: no necesariamente profesionales ni tampoco especialistas. Sin importar entorno laboral, edad o trasfondo tecnológico, cualquier usuario puede repasar la documentación proporcionada y aplicar todas las posibilidades con un esfuerzo simbólico en comparación con otras alternativas. Desde un principio se diseñó para conseguir este objetivo de forma que todo suceda del modo más sencillo posible: con una estructura esencial versátil, clara, fácil de entender y empleando exclusivamente órdenes en español. Es por esto que Pramo posee el lenguaje de automatización de más alto nivel conocido -entendiendo nivel como distancia a la circuitería electrónica-, de manera que su curva de aprendizaje tiene una accesibilidad excelente para todo hispanohablante. A partir de la diversidad de posiblidades que ofrece el usuario puede automatizar tareas manuales como las que se encuentran en la rutina diaria o esporádica de cualquiera que trabaje formalmente o se entretenga con un ordenador. Su capacidad recursiva le permite adaptar la funcionalidad modular de la programación orientada a objetos de manera que cada fichero se comporte, si es menester, como una función medular o modular -según sea necesario- y, en la práctica, un objeto. Mediante estas cualidades, es competente para realizar un gran abanico de encargos, eliminando el tiempo empleado delante de una pantalla y ahorrando horas de trabajo manual, ya sea en la administración y mantenimiento de sistemas empresariales o en quehaceres ocasionales.
Sin olvidar sus facetas educativas y pedagógicas. Porque además de ser una excelente toma de contacto para primerizos a la programación, dado que sus conceptos y puesta en práctica son sumamente simplificados, Pramo puede servir también como herramienta de aprendizaje para que los niños -incluso sin sus capacidades de razonamiento deductivo e inductivo plenamente desarrolladas- sean capaces de entender conceptos e ideas para analizar problemas y encontrar los procesos que los solucionan. Además de llegar a entender el compromiso entre rapidez y eficiencia a la hora de encontrar y llevar a cabo esos métodos. Debido a la libertad de acciones ofrecida será el niño, con su capacidad e imaginación, quien decida el ritmo y manera en que llevará a cabo sus proyectos. De esta forma podrá elaborar un pensamiento analítico mediante un progreso intuitivo determinado sólo por su voluntad. La inmediatez de los resultados -y la facilidad con la que se diagnostican los errores- impide que llegue a producirse la frustración del principiante o el bloqueo de la dificultad disonante tras los pasos introductorios.
PRAMO
: DOCUMENTACIÓN | 8
pramo | PRAMOSOFTWARE.WORDPRESS.COM Y sirve para casi todo tipo de propósito. Ya sean las tareas que se realizan habitualmente en un equipo de escritorio -algo tan simple como iniciar una serie de aplicaciones en el arranque del sistema operativo o más complicado como un gestor de copias de seguridad con múltiples condiciones- u otras ocasionales o especializadas, como poder crear personalizaciones y optimizaciones de Windows modificando el registro automáticamente o delegar en el ordenador repeticiones masivas de forma condicional e indefinidamente mediante bucles ramificados. O incluso emular las labores del conocido cron de los sistemas del tipo Unix. Todo ello con un facilidad pasmosa. Pramo puede servir para llevar una lista con anotaciones -visuales o sonoras- con recordatorios a momentos concretos; para cargar listas de páginas web en un navegador o en varios; para ordenar o eliminar ficheros antiguos de la carpeta de descargas del sistema operativo; para tener una o prácticamente infinitas alarmas de aviso; para cerrar programas o desactivar temporalmente servicios de Windows al arrancar videojuegos -haciendo que el sistema rinda sin estorbos-; para hacer mantenimientos programados y no presenciales a ordenadores; para realizar capturas de pantalla cada cierto tiempo y guardarlas en la carpeta del usuario correspondiente; para programar la escucha de canciones a ciertas horas; para conciliar el sueño poniendo sonidos o música progresivamente más bajos; y viceversa para despertarse; para respaldar archivos importantes del sistema o del usuario; para apagar o hibernar el ordenador a una hora determinada o tras una tarea concreta... etcétera y etcétera. Y todo esto incluye la posibilidad de convertir estas automatizaciones en bots/robots en memoria que automaticen las tareas cada cierto tiempo. Como puede verse no hay delimitación concreta en sus aplicaciones, aunque tampoco hay un complejo lenguaje de programación que aprender; por tanto, no existe la potencia necesaria para hacer lógica y bucles avanzados, dicho sea de paso. Y dicho sea también, de todo lo mencionado se verán ejemplos prácticos explicados y listos para usar durante el tutorial de este documento.
La idea básica tras Pramo es acercar al usuario sus propias intenciones con la mayor abstracción posible, de manera que los patrones habituales de código manual sean reemplazados por concisiones — quitando así gran parte del procedimiento que se encuentra entre la idea y su consecución. De este modo, el cómo se convertirá en un aspecto breve y temporal para proyectos o resolución de problemas rutinarios.
PRAMO
: DOCUMENTACIÓN | 9
pramo | PRAMOSOFTWARE.WORDPRESS.COM
|03. uso Dado que Pramo no se utiliza directamente sino que sus funciones son iniciadas desde un fichero adicional esta sección detallará las posibilidades de uso existentes y la estructura de su sintaxis. Como toma de contacto, se mostrará una serie de ejemplos sencillos con acciones en forma de tutorial. Posteriormente se irán viendo otras sinopsis de mayor complicación y la manera en que pueden combinarse entre sí para interaccionar según sea necesario.
sinopsis. (Del lat. tardío synopsis, y este del gr. σύνοψις; de σύν, con-, y ὄψις, vista). 1. f. Disposición gráfica que muestra o representa cosas relacionadas entre sí, facilitando su visión conjunta. 2. f. Exposición general de una materia o asunto, presentados en sus líneas esenciales. 3. f. Sumario o resumen.
|nota: La palabra "pramo" proviene del idioma Esperanto y significa lanzadera. Pramo evolucionó desde un rudimentario lanzador de programas con pausas entre sí.
PRAMO
: DOCUMENTACIÓN | 10
pramo | PRAMOSOFTWARE.WORDPRESS.COM
|03.1. tutorial — introducción El requisito básico para empezar a usar Pramo es un editor de texto que pueda exportar texto plano (también llamado claro o crudo) — esta condición es importante. Si no tiene ninguno a mano -so pena de usar el bloc de notas de Windows- es recomendable optar por Notepad++ o Notepad2-mod / Notepad2, son gratuitos y de libre uso.
Tras crear un fichero con nombre a elegir y extensión .sps puede, por ejemplo, escribirse la siguiente línea, de muy simple propósito: 1
iniciaprograma|c:\WINDOWS\system32\calc.exe
Sólo por esta vez se va a depender de la intuición del usuario para deducir el sentido y la estructura de la línea, aunque en todos los posteriores ejemplos se detallará cada elemento con precisión y claridad. Una vez grabado el fichero, puede iniciarse con Pramo arrastrando el icono del fichero de sinopsis sobre el de Pramo o, tras iniciar Pramo, seleccionar el fichero en la ventana de explorador que mostrará (o, alternativamente, pasando la ruta completa del fichero como parámetro). El ejemplo mostrado no hará más que abrir la calculadora de Windows.
PRAMO
: DOCUMENTACIÓN | 11
pramo | PRAMOSOFTWARE.WORDPRESS.COM Realizando el siguiente cambio es posible hacer algo más que iniciar la calculadora: 1 2
iniciaprograma|c:\WINDOWS\system32\calc.exe espera|2|segundos|5+3|espera|1|segundo|[INTRO]
En ambas líneas aparecen varias barras verticales "|" (concretamente, el carácter 124 en código ASCII, que normalmente se muestra pulsando la combinación de teclas [Alt Gr] y el 1). Cada una de las barras es un separador de órdenes y esas órdenes pueden ser, de entrada, acciones o condiciones. Como se ve en la primera línea, una barra separa la sinopsis de su parámetro -en gris claro-, que indica la ruta y nombre del fichero a ejecutar. En la segunda línea separan bastante más, puesto que hay cuatro acciones: • La primera es una orden de espera y se utilizan dos barras para disgregar la sinopsis de sus parámetros; con ella Pramo se detiene y deja de realizar las indicaciones -deja de funcionardurante el tiempo indicado por la cifra del primer parámetro. • Después se escriben varios caracteres que, en este caso, conforman una simple operación matemática y, • tras esperar un segundo, • pulsa la tecla Intro, con lo que se muestra el resultado en la calculadora. A simple vista es evidente que las barras verticales aparecen por doquier. Esto se debe a que son los elementos que dan forma a Pramo, es decir, los separadores conforman el armazón de su sintaxis. Por otra parte, el envío de números, letras y palabras se hace, como puede observarse, de igual modo que si fueran pulsaciones de teclado individuales, sin más particulares. No requieren indicaciones previas, sinopsis especiales o condiciones. También es posible enviar combinaciones de teclas, pero esto queda para la próxima sección del tutorial. Del mismo modo que se ha encadenado órdenes en la segunda línea, cabe preguntarse por qué no se ha hecho lo mismo concatenando primera y segunda línea en una sola. Esto es porque no se puede añadir más órdenes en la misma línea tras la ejecución de un programa, puesto que es una sinopsis de fin de línea (o SFL). Antes de esa orden sí, después no. Este no es un concepto esencial de Pramo -puesto que es una limitación flexible, como verá el usuario posteriormente- pero es conveniente que se conozca desde un principio. Más adelante quedará claro el porqué.
PRAMO
: DOCUMENTACIÓN | 12
pramo | PRAMOSOFTWARE.WORDPRESS.COM Para introducir comentarios o anotaciones en el texto -de forma que sean indicativos y aclaratorios de lo que se ha escrito o con el fin de resaltar el contenido de diferentes secciones- debe comenzarse la línea con una de las barras verticales ya mencionadas, un separador. De esta manera todo lo que aparezca detrás, en toda esa línea -esté como esté escrito- se ignorará. |iniciaprograma|c:\WINDOWS\system32\calc.exe |espera|2|segundos|5+3|espera|1|segundo|[INTRO]
1 2
Con este ejemplo se conseguiría que Pramo no hiciese nada, ya que ambas líneas quedan convertidas en comentarios. Y algo que es importante precisar: toda vez que una línea empiece a ser normalmente interpretada ninguna parte de ella podrá convertirse en comentario. Y viceversa, una línea de comentario no puede habilitarse para ser interpretada.
|en esencia: · Las sinopsis de Pramo se escriben tal cual aparecen en la lista del documento de vocabulario; · · ·
· · · ·
sin símbolos extras o puntuación adicional. Entre cada sinopsis se emplea un separador, una barra vertical "|" (concretamente, el carácter ASCII nº 124 que aparece con la combinación [Alt Gr] y el 1). Las sinopsis pueden requerir parámetros para ser utilizadas. Algunas sinopsis tienen una estructura diferente para utilizar los parámetros: unos serán independientes (como los de iniciaprograma), otros estarán empotrados dentro de la propia sinopsis (como, por ejemplo, los de la sinopsis segundo: que se verá más adelante) y otros, simplemente, no serán necesarios o no existirán. Entre una sinopsis y cada uno de sus parámetros independientes también se emplea un separador, la barra vertical "|". De forma que estos símbolos son el armazón fundamental de Pramo, pues delimitan sus elementos principales. El emplear el mismo elemento separador entre sinopsis diferentes y sus propios parámetros no genera ningún problema ni induce a confusión siempre que se respete el número de parámetros necesario de cada sinopsis. Los separadores, además, sirven para convertir el contenido de una línea en un comentario (que no será interpretado por Pramo) sólo cuando se ubiquen al comienzo de ella. palabras clave: línea, separador, barra vertical, sinopsis, parámetro, sinopsis de fin de línea, comentario.
|nota: La lista completa de sinopsis puede consultarse en el documento auxiliar Pramo - Anexo – Vocabulario (.PDF).
PRAMO
: DOCUMENTACIÓN | 13
pramo | PRAMOSOFTWARE.WORDPRESS.COM
|03.2. tutorial — primeros pasos Ahora es momento de mostrar una pequeña evolución de lo visto y dejar claro el concepto de sinopsis y el modo en que se estructuran los ficheros que las contienen. De vuelta a las operaciones con la calculadora de Windows, con un ejemplo práctico para mayor comodidad y seguir explorando las posibilidades de Pramo. Imagínese que habitualmente necesita calcular un porcentaje; por ejemplo, el actual tipo general de IVA (21%) de un número. Y quiere hacerlo de tal manera que el programa pueda, indirectamente, interactuar con el usuario, permitiendo que el número no tenga que ser siempre el mismo, sino que se encuentre en el portapapeles, por comodidad. Ya sea copiado de una página web, un documento en edición o similar. Una forma artesana pero visual con la que lograr esto mediante Pramo sería: 1 2 3
iniciaprograma|c:\WINDOWS\system32\calc.exe espera|1|segundo|[CONTROL]v|*0.21|[INTRO] espera|5|segundos|cierraproceso|calc.exe
¿Qué sucede en estas líneas? Tras la espera, se pega lo que hubiera en el portapapeles (mediante el envío de CTRL + v) — como ya se indicó, sería el número del cual se quiere saber el 21%. Y, seguidamente, realiza una multiplicación con la que calculará ese porcentaje. Así pues, CTRL + v sería un ejemplo de envío de combinación de teclas y está claro que no reviste complicación alguna. También cabe la consideración de si podría haberse unido la combinación de teclas y el envío de caracteres: por supuesto, y sin mayor complicación que eliminar el separador; pero es preferible no hacerlo para mejorar la legibilidad.
|nota: Es una buena costumbre prestar atención a la claridad -a la par que la eficiencia- de las órdenes que se escriben en el fichero de sinopsis. Siempre será útil poder volver a entender con facilidad lo que se planificó tiempo atrás y los casos tan sencillos u obvios como el ejemplo serán la excepción. La palabra encorchetada [INTRO] conforma el envío de una tecla especial, como ya se ha visto anteriormente; y equivale a pulsar la tecla Intro (también Retorno o Enter). La lista completa de teclas soportadas aparece en el documento de vocabulario anexo mencionado en la sección anterior. En la tercera línea -que bien podría haberse unido con la segunda, pero no se ha hecho, de nuevo, por legibilidad- aparece una nueva acción, cierraproceso, cuyo parámetro es independiente y se encuentra en el siguiente segmento. Su efecto, como resulta evidente, es cerrar el proceso en memoria (si existe) indicado como parámetro. Por lo que se cierra la calculadora tras haber mostrado el resultado durante un tiempo prudencial, aunque también podría haberse copiado el número al portapapeles antes de cerrar.
PRAMO
: DOCUMENTACIÓN | 14
pramo | PRAMOSOFTWARE.WORDPRESS.COM Cuando sea necesario, es posible unir dos líneas empleando un separador, siempre y cuando se pueda conservar la misma cadena de condiciones o no haya ninguna. En el caso visto, la segunda y tercera línea podrían unirse en una sola sin dificultad alguna y el resultado seguirá siendo el mismo. iniciaprograma|c:\WINDOWS\system32\calc.exe espera|1|segundo|[CTRL]v|*0.21|[INTRO]|espera|5|segundos|cierraproceso| calc.exe 1 2
Finalmente, tal y como se ha visto, el final de una línea tiene dos efectos en Pramo: · de separación, puesto que equivale a un separador vertical (|), distanciando el contenido de la sinopsis que finaliza la línea. Es por esto que no hace falta comenzar la siguiente línea con un separador. · como descarte de las condiciones previamente aceptadas y resueltas en la línea que queda atrás; de forma que tal o tales condiciones dejan de tenerse por validadas.
|en esencia: · Las sinopsis pueden aparecer encadenadas en una misma línea indefinidamente (salvo una
· ·
excepción que se verá más adelante) mientras se acepte la cadena actual de condiciones o no haya ninguna; aunque es más práctico y legible fragmentarlas en diferentes líneas siempre que sea posible: según su lógica, tipo, área de acción, relevancia, etc. Los saltos de línea equivalen a un separador al final de la última sinopsis escrita. Además, anulan la cadena de condiciones validadas de la línea que termina, por lo que la siguiente línea siempre empieza siendo procesada. palabras clave: segmento, línea, tecla especial, parámetro independiente, condición, legibilidad, claridad, salto de línea.
PRAMO
: DOCUMENTACIÓN | 15
pramo | PRAMOSOFTWARE.WORDPRESS.COM
|03.3. tutorial — erratas, errores y fase de adaptación El modo en que Pramo reacciona ante un fallo de sintaxis o una errata no es el común visto en los lenguajes de programación y automatización informáticos. Dado que los ficheros de sinopsis no son verificados o procesados antes de ponerse en funcionamiento, Pramo ha de maniobrar para ser adaptativo y resistente a los problemas. Bajo esta premisa, intentará amortiguar los imprevistos de la manera más inocua posible (siempre supeditado a lo que el usuario establezca previamente; las sinopsis relacionadas se explicarán más adelante) y esquivará peligros que puedan impedir su funcionamiento o generen resultados conflictivos. A la hora de interpretar un fichero de sinopsis es posible que Pramo se encuentre con palabras que no estén en su vocabulario. Así, cuando el contenido de un segmento (la información que aparezca entre cada separador) no conforme una sinopsis u otra orden conocida por Pramo, éste lo interpretará como texto a enviar tal cual a la ventana que se encuentre en foco — es decir, como pulsaciones de teclas. De modo que, si durante la transcripción de la sinopsis del ejemplo anterior del tutorial, el usuario hubiera cometido un error de escritura (por ejemplo, escribiendo "esprera" en lugar de espera), Pramo no deduciría si se trata de una errata o una palabra a enviar intencionadamente, por lo que interpretará la supuesta sinopsis en forma de pulsaciones de teclas que recibirá la ventana activa en ese momento (en su defecto, la barra de tareas o los iconos del propio escritorio del sistema operativo). Y lo que es más importante, el texto de esa sinopsis errónea y todos los subsiguientes parámetros seran enviados a la ventana activa hasta que Pramo encuentre una orden que pueda reconocer en esa o posteriores líneas. También puede suceder que el identificador de una sinopsis esté escrito correctamente pero el parámetro suministrado no sea aceptado por Pramo; por ejemplo, al haber escrito un número de una cifra en lugar de dos; o letras en lugar de una cifra. En este caso, Pramo determinaría lo que hacer dependiendo del tipo de sinopsis: si es una condición o no. De ser así, cancelaría el procesado tanto de la sinopsis como el resto de la línea actual para proseguir con la siguiente de inmediato. Y de otro modo buscaría la siguiente sinopsis en la misma línea.
|notas: · Pese a lo mencionado, este comportamiento se puede evitar mediante la sinopsis Impide ·
envío de pulsaciones y texto. Es importante tener presente que las teclas y el texto en general no son sinopsis sino que forman parte del vocabulario adicional de Pramo; por lo que, como ya se ha indicado en la sección anterior, todo tipo de envío de teclas puede ir unificado en un mismo segmento, si se prefiere. Es decir, siempre que se envíe texto también pueden incluirse combinaciones de teclas (tales como CTRL + v, vista anteriormente), sin importar que vayan junto con texto o en un segmento aparte porque Pramo no se confundirá ni generará un error.
|importante: Como se irá comprobando, Pramo es sensible a mayúsculas y minúsculas en cuanto a las pulsaciones de teclas, por lo que han de mantenerse tal cual sea menester: No será lo mismo pulsar CTRL + V que CTRL + v. Y, del mismo modo, es posible enviar texto y combinaciones en uno u otro formato.
PRAMO
: DOCUMENTACIÓN | 16
pramo | PRAMOSOFTWARE.WORDPRESS.COM Como medida de prueba y prevención ante las situaciones imprevistas que pueden suceder a la hora de escribir ficheros de sinopsis, se ha creado un sistema informativo con el que es posible saber la forma en que piensa y qué entiende Pramo por lo que encuentra escrito en cada fichero de sinopsis. Para ello existe una sinopsis llamada Activa informe y su función es la de generar un fichero de informe -desde el momento de aparición de esta orden- por cada fichero de sinopsis que Pramo interprete, y ocasionalmente otro general donde se indiquen las peticiones de carga de cada fichero de sinopsis. Estos ficheros de informe se pueden emplear para diagnosticar un funcionamiento inesperado, ya que contienen: la lista de líneas, la fecha de inicio apurada hasta el milisegundo, la interpretación que hace Pramo de cada una de las sinopsis y sus parámetros, los errores detectados y buena parte del proceso interno de su funcionamiento. La intención es que puedan ser leídos y entendidos sin problemas por una persona, por lo que su estructura y aspecto buscan ser inteligibles y útiles. Puede encontrar más información al respecto en las secciones "05. Ajustes generales" y "10. Línea de comandos" del documento auxiliar Pramo - Anexo – Vocabulario (.PDF).
PRAMO
: DOCUMENTACIÓN | 17
pramo | PRAMOSOFTWARE.WORDPRESS.COM Por último, en el transcurso de los primeros días o semanas que dura la fase de adaptación a Pramo, podría darse el caso de encontrar que el vocabulario se sienta farragoso y semejante (a causa de no poder distinguirlo de entre sí en el editor). O hasta confuso y que no parezca claro dónde comienza y acaba cada sinopsis debido a las diferencias de forma respecto al resto de sistemas de automatización y programación. Para evitarlo, existe la posibilidad de hacer un pequeño cambio, a modo de truco. La solución pasa por establecer que la primera letra de cada sinopsis -siempre que no corresponda a una pulsación o envío de tecla ni conforme parte de un parámetro- se escriba en mayúsculas. De esta forma quedaría más claro cuáles son las sinopsis y sería más fácil identificar dónde comienza y acaba cada grupo de órdenes en caso de líneas con numerosas condiciones o acciones encadenadas. De este modo, el ejemplo anterior del tutorial sería tal que así: Iniciaprograma|c:\WINDOWS\system32\calc.exe Espera|1|segundo|[CTRL]v|*0.21|[INTRO]|Espera|5|segundos|Cierraproceso| calc.exe 1 2
Si el usuario encuentra imposible volver a la sintaxis reglada -tal cual se indica en el documento de vocabulario- puede mantener esta variación hasta que lo considere oportuno pues no hay sinopsis que precisen uno u otro formato de letra. Ésta sería una alternativa de último recurso fiable y fácil de poner en práctica incluso aunque en el futuro se ofrezcan añadidos para incluir coloreado de sintaxis en los editores de texto más comunes. El objetivo de Pramo, como puede verse, es siempre la facilidad de uso y se antepone a cualquier otra planificación.
|en esencia: · La gestión y control de errores de sintaxis es lo más discreta posible: Si una sinopsis no está
· · · ·
·
bien escrita no será interpretada o reconocida como una sinopsis sino como una serie de pulsaciones que recibirá la ventana actual. Además, las erratas en parámetros normalmente provocarán un salto de línea. Para que Pramo genere un fichero de estado y volcado de errores durante la carga de un fichero de sinopsis ha de emplearse la sinopsis Activa informe al comienzo del mismo o, alternativamente, el parámetro de línea de comandos "-informe". Pramo interpreta como teclas o pulsaciones todo lo que no pueda reconocer como una orden; de forma que emplear -y revisar- una sintaxis correcta es esencial. Las combinaciones de teclas pueden mezclarse junto con otro texto a enviar o pulsaciones simples sin necesidad de separadores, puesto que no son sinopsis sino parte del conjunto del vocabulario. Por coherencia y claridad se recomienda respetar las mayúsculas de la sintaxis según se indica en el fichero de vocabulario — actualmente no hay ninguna sinopsis (aunque sí parámetros) que exija exactitud en este aspecto. Pero si, durante el proceso de iniciación a Pramo existe confusión sobre la estructura y delimitación, puede establecerse alguna variación para facilitar el proceso. palabras clave: error, errata, fichero de informe, diagnóstico, texto, teclas especiales, mayúsculas.
PRAMO
: DOCUMENTACIÓN | 18
pramo | PRAMOSOFTWARE.WORDPRESS.COM
|03.4. tutorial — acciones y macros Algunas sinopsis de Pramo pueden llevar parámetros obligatorios -como las ya vistas espera o cierraproceso- pero, en el caso de otras, son opcionales, como es la ejecución de programas. Así sería un ejemplo de esto último, empleando todos los parámetros disponibles de esa sinopsis: 1 iniciaprograma|c:\WINDOWS\system32\notepad.exe|c:\Almacén de documentos\Anotaciones mensuales.txt|c:\|maximizado|noespera
En esta línea hay varios detalles a explicar. De primeras, aparecen seis segmentos delimitados por separadores, comenzando con el identificador de la sinopsis iniciaprograma. El primer parámetro es la ruta y nombre del programa a ejecutar — aquí, el bloc de notas de Windows. El segundo parámetro de la sinopsis es el parámetro que se le entrega al programa ejecutado -en este caso, otro nombre de fichero que se desea abrir para editar-. Puede observarse que hay espacios en ruta y nombre pero no se han empleado comillas: Pramo no necesita de esto y no hay posibilidad de errores siempre que se respete la sintaxis indicada. El tercer parámetro es la ruta de trabajo, es decir, la carpeta de referencia para el programa. Si se indica una ruta, esa será la utilizada para guardar configuraciones personalizadas o datos del programa (a este respecto cada programa funciona de una manera distinta y tendrá que consultar la documentación pertinente, si es necesario). Si no especifica una ruta empleará automáticamente la carpeta donde se encuentre el programa, caso de ser necesario. Este parámetro es equivalente a la sección “Iniciar en:” encontrada en las propiedades un acceso directo común del sistema operativo. El cuarto parámetro indica el modo en que se ejecutará la ventana del programa, habiendo cuatro posibilidades: normal, oculto, minimizado y maximizado. El quinto y último indica si Pramo deberá esperar a que el programa cierre para seguir procesando otras sinopsis o no. Dos valores posibles: espera indica que espere, noespera -predeterminado- que no lo haga.
Todos los segmentos son opcionales salvo el primero. Y, si se prefiere o es necesario, pueden dejarse vacíos para utilizar los valores predeterminados juntando dos separadores sin dejar espacio. Un ejemplo de esto sería: 1
iniciaprograma|c:\WINDOWS\system32\notepad.exe||||espera
La estructura es lineal y sencilla. Inicia el Bloc de notas de Windows y activa sólo el último parámetro, de forma que si hay más sinopsis en líneas siguientes tendrán que esperar a que el usuario cierre el bloc de notas para seguir con ellas.
PRAMO
: DOCUMENTACIÓN | 19
pramo | PRAMOSOFTWARE.WORDPRESS.COM El usuario puede dar una vuelta de tuerca a lo visto empleando un concepto que amplía el potencial de Pramo: las macros o macroinstrucciones. Observe esta línea: 1
díadesemana:Lunes|hora:>15|iniciaprograma|c:\WINDOWS\system32\mspaint.exe| @rutadeMisDocumentos\imagen1.jpg||maximizado
Aparecen tres sinopsis. La primera es una condición, díadesemana, cuyo parámetro es el día de la semana que se establece como requisito para continuar el procesado de la línea. Si se ejecuta un lunes procedería sin más novedad, de otro modo el contenido de la línea es obviado a partir de ahí y continuaría con la siguiente del fichero. Después otra condición, hora:>, exigiendo que la hora en el momento de interpretar la línea sea superior al valor indicado. En este ejemplo, las 3 de la tarde pues el rango de valores que se aplica es el de 00 a 24 horas. Por último, se inicia la aplicación Paint de Microsoft Windows con un parámetro que es nuevo en el tutorial y comienza con el símbolo de la arroba: una macro. Repasando la descripción hecha de la sinopsis iniciaprograma puede comprobarse que ese parámetro indica el parámetro que recibe el programa. La macro @rutadeMisDocumentos es reemplazada durante el funcionamiento por la ruta completa hacia la carpeta Mis Documentos del usuario que ejecute el fichero de sinopsis. Así pues, sería la ruta hacia una imagen.
|nota: La contrabarra (\) entre la macro y el resto de la ubicación hacia el fichero se añade porque las macros de ruta no la incluyen al final, de modo que las sinopsis sean más claras de analizar y entender. El parámetro a la carpeta donde se inicia el programa queda vacío (iniciaprograma es una de las sinopsis con parámetros opcionales y pueden quedar en blanco si no son necesarios) pero no el siguiente, por lo que la aplicación se ejecutará con la ventana maximizada.
PRAMO
: DOCUMENTACIÓN | 20
pramo | PRAMOSOFTWARE.WORDPRESS.COM La intencionalidad de las macros es tan simple como disponer de una palabra clave que simbolice el elemento por el que será reemplazada -ya sea números, letras o lo que corresponda- justo en el momento de ser procesada. Y su potencial se conforma como uno de los puntos fuertes de Pramo.
|en esencia: · Cuando una sinopsis tiene parámetros opcionales y no se pretende utilizar uno -o varios- de · · ·
·
ellos se indican dos separadores consecutivos -sin espacio entre ellos- si hay otro parámetro posterior. Si no hay otros parámetros o sinopsis después no es necesario añadir nada más. Las macros de rutas no incluyen la contrabarra final y deberá añadirse manualmente para indicar la ruta hacia un fichero. Cuando una sinopsis de inicio de programas no tiene indicada la ruta de trabajo Pramo le asignará la propia carpeta donde se encuentre el programa en cuestión. Esto sucede también para sinopsis similares. Pramo no necesita de comillas cuando las rutas o parámetros incluyan espacios puesto que se delimitan con los separadores. Aún así, es posible que, en caso de iniciar un programa con múltiples parámetros que incluyan espacios -tal como rutas a ficheros-, se requiera emplear comillas para diferenciar un parámetro con espacios de otro parámetro distinto; pero esta debilidad es una ambigüedad inherente al propio concepto de los parámetros. palabras clave: parámetros opcionales, parámetros obligatorios, macros.
PRAMO
: DOCUMENTACIÓN | 21
pramo | PRAMOSOFTWARE.WORDPRESS.COM
|03.5. tutorial — complicaciones menores Es fácil ver el potencial que tiene el uso de las mencionadas macros cuando se busca versatilidad, como en el siguiente ejemplo: 1 2 3
Crea acceso directo al fichero de sinopsis actual|@rutadeAutoArranque|= hora:14|iniciaprograma|c:\Program Files\Windows NT\Accessories\wordpad.exe|@rutadeMisDocumentos\tarde.doc
Estas tres líneas, guardadas en un fichero de sinopsis realizan un minúsculo conjunto de tareas relacionadas entre sí que sirven una función común. La primera sinopsis es una acción que genera un acceso directo en el autoarranque general de Windows para que, cuando cualquier usuario inicie sesión en ese sistema, se ejecute Pramo con el fichero de sinopsis actual automáticamente. En este caso, la macro utilizada establece una ruta que sirve de autoarranque global. La segunda y tercera líneas tienen estructuras idénticas, aunque con un par de diferencias. Ambas empiezan con una sinopsis de condición que obliga a que la hora del sistema sea mayor o menor a la indicada para que la línea prosiga. Después ejecuta un programa, WordPad de Windows -un editor de texto- incluyendo como parámetro la macro @rutadeMisDocumentos, que es reemplazada por la ruta hacia la carpeta Mis Documentos del usuario actual. Esto es particularmente versátil como se verá después. Esta lógica simple presentada se basa en refinar el resultado mediante una cadena de condiciones: A medida que avanza el progreso en la línea se franquean condiciones más particulares hasta que alcanza la circunstancia preferida. De lo general a lo concreto. En cuanto aparece una condición que no es satisfecha se descarta la línea -junto a las condiciones validadas- y Pramo continúa con la siguiente. Este método proporciona control sobre el resultado, es inteligible y claro a simple vista y tiene una conveniencia añadida: las líneas se descartan lo antes posible si las condiciones necesarias no se cumplen, economizando el tiempo invertido en comprobaciones. En el próximo tutorial se verá la importancia de esto.
PRAMO
: DOCUMENTACIÓN | 22
pramo | PRAMOSOFTWARE.WORDPRESS.COM ¿De qué manera serían útiles la sinopsis del ejemplo anterior en una situación real? Veamos el siguiente supuesto. Unas oficinas de empresa. En esa entidad imaginaria cada trabajador en cada ordenador o terminal posee una cuenta de usuario con sus documentos correspondientes. Al final de cada turno ha de terminar un informe con datos sobre la jornada, el cual se guarda en su carpeta Mis Documentos. De manera que una serie de trabajadores que no pueden mezclar sus informes comparten PC: de lunes a viernes, mañana y tarde (antes o después de las tres de la tarde; esto permite incluir a empleados que puedan llegar a última hora de la mañana). Ese ejemplo, sin cambiar una letra, sería una forma simple aunque tremendamente fácil de hacer que cada usuario tenga a mano sus documentos oportunos para su turno. Así, el fichero de sinopsis arranca con todos los usuarios pero busca en cada carpeta Mis Documentos de cada usuario su propio fichero personal apropiado para el momento. Imagínese que esto ocurre, no en uno, sino en quince o en ciento noventa ordenadores. Es indiferente. Y, por supuesto, otros tipos de sinopsis pueden elaborar, precisar y complicar el ejemplo para servir otros pormenores y tener en cuenta diferentes circunstancias. Como puede verse, es posible conseguir adaptación y flexibilidad generalizando con las macros.
|en esencia: · Para necesidades concretas -las más comunes- es preferible optar por una lógica simple de
·
condiciones generales al comienzo de una línea y más particulares según avanza. El control sobre el resultado es mayor de este modo y el tiempo transcurrido en cada línea es el mínimo necesario. palabras clave: sinopsis de acción, sinopsis de condición, macros, versatilidad, fichero de sinopsis, usuarios.
|nota: Tanto la lista de sinopsis que permiten uso de macros como la lista completa de macros pueden consultarse en el documento auxiliar Pramo - Anexo – Vocabulario (.PDF).
PRAMO
: DOCUMENTACIÓN | 23
pramo | PRAMOSOFTWARE.WORDPRESS.COM
|03.6. tutorial — situaciones condicionadas Dado que la ejecución condicionada de sinopsis es una de las bazas principales de Pramo, llega el momento de empezar a afrontarla. A la hora de escribir las sinopsis condicionales es necesario destacar que no hay una diferencia con respecto al resto del vocabulario que emplea el programa. La presentación de condiciones no está restringida por una estructura fija que delimite su posición sino que son las propias condiciones quienes la conforman y determinan con su aparición. Es decir, se escriben tal cual, sin prolegómenos; de manera que todo sucede de forma mucho más fluida, compacta y autodefinida. Obseve la siguiente línea: 1
hora: -mensajeaconfirmar, -mensajeesperavisual > -mensajedeesperavisual, -extensionSPS > -asociaextensionSPS, -NOextensionSPS > -desasociaextensionSPS, -informe > -activainforme, -icono > -asignaicono, -cierreconclickizquierdo > -cierraconclickizquierdo y -cierreconclickderecho > -cierraconclickderecho [CAMBIADO] La estructura de pausa de Pramo ha sido rediseñada para ser más eficaz y polivalente [CAMBIADO] El control de pulsaciones con el ratón sobre el icono de Pramo ha sido rediseñado para conjugar sin problemas con la estructura de pausa de Pramo [CAMBIADO] La activación del fichero de informe se refleja ahora en el icono de Pramo con una i latina entre corchetes [CAMBIADO] Tanto la sinopsis Asigna tecla de pausa como Asigna tecla de salida ahora poseen un parámetro para desactivar estas teclas [CAMBIADO] La sinopsis Icono de Pramo pierde el valor 0 del primer parámetro y sólo queda su equivalente nulo [CAMBIADO] El parámetro salir de la sinopsis Elige comportamiento del icono de Pramo se renombra a termina para ser más consistente con el resto de órdenes [CAMBIADO] La sinopsis termina permite operaciones matemáticas en su parámetro [CAMBIADO] Las siguientes sinopsis han sido renombradas para mantener coherencia con el resto de Pramo: ASCII > códigoASCII, Botón predeterminado del ratón > Asigna botón predeterminado del ratón, Comportamiento del icono de Pramo > Elige comportamiento del icono de Pramo, Coordenadas de mensajes emergentes > Elige coordenadas de mensajes emergentes, Duración de mensajes emergentes > Asigna duración de mensajes emergentes, Esperar al cierre tras los inicios de programas y objetos > Espera al cierre tras los inicios de programas y objetos, Gestión del sistema > Gestiona el sistema, Icono de Pramo > Asigna icono de Pramo, Impedir el uso de macros > Desactiva el uso de macros, Impedir el uso de operaciones matemáticas > Desactiva el uso de operaciones matemáticas, Impedir envío de pulsaciones y texto > Impide envío de pulsaciones y texto, Instancia única > Establece instancia única, Invertir orden del menú contextual > Invierte orden del menú contextual, Supervisor > Crea Supervisor, Supervisores a fichero de informe > Detalla Supervisores en el fichero de informe, Tecla de pausa > Asigna tecla de pausa, Tecla de salida > Asigna tecla de salida, Texto en icono de Pramo > Asigna texto al icono de Pramo, Unicode > códigoUnicode, Velocidad de movimiento del ratón > Elige velocidad de movimiento del ratón, Volumen de Pramo > Establece volumen de Pramo, accesodirectoalficheroactual > Crea acceso directo al fichero de sinopsis actual, aleatorizaconjunto > aleatoriza conjunto, aleatorizasinopsisdelínea > aleatoriza sinopsis de línea, alportapapeles > copiaalportapapeles, azarlínea > condiciona el procesado del resto de línea, bucle > Crea Bucle, clickx&y > pulsaelratón, clickx&yarrastra > hazclickyarrastraelratón, dobleclickx&y > hazdobleclickenelratón, envíaconjuntoaprograma > envía conjunto a programa, modificaSupervisor > Modifica Supervisor, procesoprioridad > cambiaprioridaddelproceso, ruedahaciaabajo > mueveruedadelratónhaciaabajo, ruedahaciaarriba > mueveruedadelratónhaciaarriba, salir > termina, saltodelínea > Salta de línea, serviciotipodeinicio > cambiatipodeiniciodelservicio, x&y > mueveelratón y capturadepantalla > capturapantalla PRAMO
: DOCUMENTACIÓN | 48
pramo | PRAMOSOFTWARE.WORDPRESS.COM · · · · · · · · · · · · · · · · · · · · ·
[CAMBIADO] Las sinopsis que operan con valores "Sí/No" ya no asignan ninguna otra variante de forma predeterminada en caso de no coincidir [CAMBIADO] Ajustes al aviso informativo del icono de Pramo más consistentes con la estética de Pramo [CAMBIADO] Mejorada la comprobación del último parámetro de las sinopsis cambiahoradeobjeto, cambiafechadeobjeto y cambiaatributosdeobjeto [CAMBIADO] La información del error a fichero de informe cuando Pramo no puede asignar teclas de pausa o salida ahora es más descriptiva [CAMBIADO] Dos salidas de error de Pramo intercambian su número (la 4 y la 8) con el fin de mantener una coherencia numérica [CAMBIADO] Los supervisores ahora vacían su contenido inmediatamente tras ser finalizados [CAMBIADO] El vaciado de supervisores, bucles y objetos del menú contextual de Pramo ahora se realiza justo antes de procesar el fichero de sinopsis con el fin de evitar redundancias [CAMBIADO] La leyenda de categorías de sinopsis en el fichero de informe ha sido actualizada para contener los nuevos tipos y modificaciones [CAMBIADO] Siglas de identificador para el fichero de informe de variables, que ahora son remplazadas por una uve [CAMBIADO] La estética del reporte del finalizado de Pramo en el fichero de informe es más clara y agradable [CAMBIADO] El texto de créditos del icono de Pramo y la identificación del copyright de Pramo en las propiedades del ejecutable han sido actualizados para ser más correctos y conformes a lo acostumbrado [CORREGIDO] Reescrita parte del ciclo principal de procesado de sinopsis para ser más eficiente [CORREGIDO] La comprobación de macros ahora realiza un control previo para descartar comprobaciones innecesarias [CORREGIDO] Al emplear la sinopsis activa informe con un parámetro de carpeta resultaba en que el menú de Pramo no reaccionaba al cambio [CORREGIDO] Omisión de cierre del fichero de informe tras cada actualización, lo que podía crear una situación en la que, si el fichero de informe era eliminado externamente durante el funcionamiento de Pramo, se generaba un error terminante en la instancia actual [CORREGIDO] La carga de ficheros de sinopsis mediante la sinopsis Carga fichero de Sinopsis no respetaba la herencia predeterminada de la creación de informe y los ficheros hijos no generaban informe si su padre también lo hacía [CORREGIDO] El valor predeterminado de espera en caso de error en la sinopsis envía conjunto a programa era erróneo [CORREGIDO] Varias anotaciones a fichero de informe en la sinopsis envía conjunto a programa para ser más descriptiva [CORREGIDO] Equivocación al fusionar una asignación de variable en caso de error al asignar un supervisor con código de depuración [CORREGIDO] El personalizado del aviso emergente en el icono de Pramo mediante la sinopsis Asigna texto al icono de Pramo no operaba correctamente [CORREGIDO] La sinopsis envíaconjuntoaprograma empleaba una variable obsoleta para la asignación de parámetros, generando un finalizado abrupto de Pramo. Adicionalmente y debido a esto, la comprobación de parámetros que conformasen ficheros existentes no se llegaba a realizar, por lo que nunca existía la posibilidad de entrecomillar parámetros con espacios
PRAMO
: DOCUMENTACIÓN | 49
pramo | PRAMOSOFTWARE.WORDPRESS.COM · · · · · · · · · · · · · · · · · · · · · ·
[CORREGIDO] La sinopsis Tecla de pausa ahora permite usar cualquiera de las teclas soportadas por Pramo en lugar de sólo tres especiales [CORREGIDO] Todas las macros han sido revisadas para ser interpretadas y remplazadas desde la derecha del parámetro a revisar [CORREGIDO] La comprobación de existencia de las sinopsis fichero y carpeta ahora se realiza de forma inequívoca y las condiciones no son intercambiables [CORREGIDO] El control de avisos visuales mediante la sinopsis Asigna duración de mensajes emergentes no era respetado durante la solicitud de salida mediante el ratón [CORREGIDO] La sinopsis Unicode ahora permite anteceder el código con los caracteres 0x para dar claridad al fichero de sinopsis [CORREGIDO] El reporte a fichero de informe de las sinopsis iniciaprograma, iniciaprogramacomo e iniciaobjeto ahora es más claro y concreto, eliminando partes iniciales de una referencia de duración cuando no han sido utilizadas [CORREGIDO] Un problema potencial con la macro @rutasdeentorno y el bucle que la controlaba, de modo que no colisione con otros bucles [CORREGIDO] Error que impedía una comprobación para un terminado de segmento si el diagnóstico a fichero de informe no estaba activado, de forma que un segmento vacío era procesado por todas las condiciones de sinopsis y malgastaba tiempo [CORREGIDO] La sinopsis Elige comportamiento del icono de Pramo tenía una verificación incorrecta para su primer parámetro de forma que no descartaba los ajustes erróneos [CORREGIDO] Reescrita parte de código de la sinopsis Carga fichero de Sinopsis para que sea más eficiente; concretamente sus parámetros paralelo y espera [CORREGIDO] La carga de ficheros de sinopsis mediante la sinopsis Carga fichero de Sinopsis ahora es más informativa a la hora de generar el contenido para el fichero de informe, de manera que los informes no terminen de forma abrupta en algunos casos [CORREGIDO] La entrada en pausa de la sinopsis pausa no era la idónea [CORREGIDO] La sinopsis Asigna icono de Pramo ha sido revisada y rectificada para descartar tipos de ficheros no aceptados y terminar correctamente tras una asignación [CORREGIDO] Las sinopsis espera y esperavisual ahora permiten emplear decimales en sus parámetros numéricos [CORREGIDO] Las sinopsis espera y esperavisual ahora no cancelan el procesado de la línea si encuentran un error en sus parámetros [CORREGIDO] Modo equivocado de opciones permitidas para la caja de diálogo que permite elegir un fichero de sinopsis cuando no hay parámetros de línea de comandos [CORREGIDO] Rectificado texto a fichero de informe que describía las variables como macros durante su detección [CORREGIDO] Eliminado fin de línea innecesario en caso de que el usuario no indique una clave en la sinopsis iniciaprogramacomo [CORREGIDO] El valor máximo de bucles y supervisores era inexacto por una unidad [CORREGIDO] El deshabilitado de mensajes emergentes no se respetaba durante la pausa y la salida debido a una condición no precisada [CORREGIDO] El añadido de ficheros de sinopsis por línea de comandos no hacía una comprobación previa ni tenía una salida con error [CORREGIDO] Algunas descripciones de las sinopsis de inicio de programas han sido expandidas para ser más claras
PRAMO
: DOCUMENTACIÓN | 50
pramo | PRAMOSOFTWARE.WORDPRESS.COM · · · · · · ·
[CORREGIDO] El vaciado de bucles, supervisores, objetos del menú contextual y variables ahora comprueba si han sido inicializados antes de hacer trabajo en balde [CORREGIDO] Identificadores erróneos del tipo de varias sinopsis en el fichero de informe [CORREGIDO] El finalizado de Pramo en el caso de encontrar un salto a línea inexistente no cerraba el acceso al fichero de sinopsis actual [CORREGIDO] Correcciones descriptivas y ajustes menores en el reporte a fichero de informe de varias sinopsis [CORREGIDO] La comprobación de variables se reportaba a ficheros de informe como 'macros' [CORREGIDO] Siglas de identificador equivocadas para el fichero de informe de algunas sinopsis [CORREGIDO] El texto informativo del icono de Pramo terminaba en un guion cuando no se había definido un texto personalizado con la sinopsis Texto en icono de Pramo
PRAMO
: DOCUMENTACIÓN | 51
pramo | PRAMOSOFTWARE.WORDPRESS.COM 2017/06 - beta 6 · [NUEVO] Sinopsis: envíalínearestantecomotexto, leelíneadefichero, Supervisor, modificaSupervisor:, Supervisores a fichero de informe, Espera a supervisores, característicadeunidad, cambiaresolucióndepantalla, teclapulsada, Invertir orden del menú contextual · [NUEVO] Variables: @carpeta, @indicador · [NUEVO] Macros: @nombredelFicherodeSinopsisActual, @númerodelíneaactual, @NúmerodelSistemaOperativo · [NUEVO] Renombradas las macros @rutadelFicherodeSinopsisActual (desde @rutadelActualFicherodeSinopsis), @rutaCompletadelFicherodeSinopsisActual (desde @rutaCompletadelActualFicherodeSinopsis), @nombredelFicherodeSinopsisActual (desde @nombredelActualFicherodeSinopsis), @rutadelPerfildelUsuarioactual (desde @rutadePerfildelUsuarioactual) y @rutadelPerfildeTodoslosUsuarios (desde @rutadePerfildeTodoslosUsuarios) para ser más apropiadas · [NUEVO] Las sinopsis esunnúmero, año, mes, díademes, hora, minuto y segundo poseen un nuevo parámetro con el símbolo Unicode 2260 ("no es igual") para tal comparación · [NUEVO] Variación para las sinopsis de ventanas: :actual: · [NUEVO] La sinopsis bucle muestra un conteo de ciclos realizados cuando se activa el fichero de informe · [NUEVO] La sinopsis espera emplea la función de espera precisa para las demoras en milisegundos · [NUEVO] Si se emplean ficheros de sinopsis con una extensión diferente a '.sps' Pramo avisará de esta situación anómala en el fichero de informe (siempre que haya sido habilitado) · [NUEVO] Teclas alternativas a [WIN IZQUIERDA] y [WIN DERECHA] · [NUEVO] Tecla alternativa de combinación [WIN] · [CAMBIADO] Las sinopsis cambiahoradefichero, cambiafechadefichero, cambiaatributosdefichero han sido reemplazadas por cambiahoradeobjeto, cambiafechadeobjeto y cambiaatributosdeobjeto, respectivamente · [CAMBIADO] Todos los valores binarios (o equivalentes) en los parámetros de sinopsis como alternativa a Sí/No han sido eliminados para evitar confusión y conservar naturalidad en la sintaxis · [CAMBIADO] Al indicar la creación del fichero de informe se inicializará uno inmediatamente después de comenzar Pramo, sin esperar a que cumpla el primer plazo de actualizado · [CAMBIADO] El fichero de informe no se graba y actualiza instantáneamente sino sólo cada cierta cantidad de segundos (2); con esto se evita un acceso constante al medio de almacenamiento en caso de ficheros de sinopsis con informes cada pocos milisegundos · [CAMBIADO] Si un fichero de sinopsis (a cargar mediante la sinopsis carga fichero de sinopsis y con los modos paralelo o espera) se valida en la carpeta de trabajo actual, la nueva instancia de Pramo tendrá también esa misma carpeta de trabajo · [CAMBIADO] La indicación de posiciones para la sinopsis desplazaventana pierde el prefijo "pos" · [CAMBIADO] La sinopsis gestionaventana posee tres acciones nuevas: destacada, nodestacada y transparencia:#% (reemplazando ésta última a la sinopsis transparenciadeventana que desaparece de Pramo) · [CAMBIADO] La sinopsis alportapapeles permite el uso de macros y operaciones matemáticas · [CAMBIADO] La sinopsis Coordenadas de mensajes emergentes ha sido reescrita para ser más eficiente y ahora posee un único parámetro
PRAMO
: DOCUMENTACIÓN | 52
pramo | PRAMOSOFTWARE.WORDPRESS.COM ·
· · · · · · · ·
· · · · · · ·
·
[CAMBIADO] Los resultados de las acciones reportadas a fichero de informe de las sinopsis capturadepantalla, modificaregistrodewindows, borraregistrodewindows, borrafichero, fechadefichero, desplazaventana, gestionaventana, transparenciadeventana, cierraproceso, esperaproceso, procesoprioridad, borracarpeta, muevecarpeta, copiacarpeta, muevefichero, copiafichero, ruedahaciarriba y ruedahaciabajo han sido modificados para ser más legibles [CAMBIADO] Cambios de claridad en el proceso de funcionamiento de la sinopsis esunnúmero para el informe al fichero de sinopsis [CAMBIADO] Rellenado el modo de ejecución de ventana en las sinopsis de inicio de programas/objetos de cara al fichero de sinopsis [CAMBIADO] Los corchetes de los nombres de ficheros de informe tienen un espacio entre ellos y el identificador para ser visualmente más agradables [CAMBIADO] El icono de Pramo tiene un diseño mejorado respecto al anterior [CAMBIADO] Cambiado el período de control de caducidad de las versiones beta de Pramo, desde seis a ocho meses [CORREGIDO] Eliminada una apertura constante e innecesaria del fichero de informe en ciertas situaciones con bucles por la que se generaba un aumento incesante de tamaño en memoria del proceso de Pramo [CORREGIDO] Error que en algunas ocasiones asignaba un nombre equivocado de variable al manejador (handle) del fichero de sinopsis a procesar [CORREGIDO] La existencia del fichero de sinopsis para utilizar en la sinopsis carga fichero de sinopsis ahora se comprueba tanto en la carpeta de trabajo actual como en la de Pramo antes de ser dado por inexistente — Importante: esto ocurre sólo cuando no se ha indicado una ruta en el nombre del fichero de sinopsis [CORREGIDO] Corregida errata en la sinopsis muevecarpeta que impedía su funcionamiento [CORREGIDO] El estado de pausa respeta completamente el ajuste a cero de la sinopsis duración de mensajes emergentes [CORREGIDO] El reporte de estado de ciclos y bucles de la sinopsis bucle se realizaba después de procesar un bucle, ahora se hace antes [CORREGIDO] Añadida comprobación adicional para actualizar el fichero de informe sólo cuando sea necesario [CORREGIDO] El empleo de valores binarios en la sinopsis modificaregistrodewindows no tenía la suficiente previsión ni comprobaciones para garantizar que los valores a introducir en el registro fueran válidos [CORREGIDO] El parámetro de comprobación para números impares de la sinopsis esunnúmero no consideraba los números negativos [CORREGIDO] Revisada y corregida la secuencia de mensajes informativos y fin de línea en caso de error para las sinopsis: capturadepantalla, espacioenunidad, cambiahoradefichero, cambiafechadefichero, gestionaventana, esperaventana, proceso, estadodelservicio, servicio, procesoprioridad, borracarpeta, muevecarpeta, copiacarpeta, muevefichero, copiafichero, cambiaestadodeservicio, serviciotipodeinicio [CORREGIDO] La sinopsis gestionaventana ahora permite indicar un texto identificativo para la ventana a gestionar (por lo que posee un parámetro adicional); también es más informativa de cara al fichero de informe
PRAMO
: DOCUMENTACIÓN | 53
pramo | PRAMOSOFTWARE.WORDPRESS.COM · · · · · · · · ·
[CORREGIDO] Añadida comprobación y reemplazo de teclas conflictivas para el envío de texto normal; de otro modo los caracteres correspondientes a esas teclas no son reconocidos ni enviados [CORREGIDO] Solucionado fallo en la sinopsis esunnúmero por el que las condiciones que implican los símbolos mayor/menor siempre validaban [CORREGIDO] La gestión de accesos directos para pausar Pramo ahora verifica cuando no ha sido posible activarla y lo indica en el fichero de informe si está activado [CORREGIDO] La salida normal de Pramo tras procesar un fichero de sinopsis no devolvía un código de retorno / error [CORREGIDO] La sinopsis reproducepitido ahora detalla correctamente las unidades de segundos en singular y plural en el fichero de informe [CORREGIDO] La tecla [ASTERISCO NUMÉRICO] ahora es [MULTIPLICADOR NUMÉRICO] [CORREGIDO] Varias comprobaciones ineficientes de variables [CORREGIDO] Pramo no terminaba con un error cuando cuando el fichero de sinopsis indicado no existía [CORREGIDO] Todas las sinopsis externas de mensajes muestran siempre el texto identificativo de título y mensaje al posar el ratón sobre el icono correspondiente de Pramo en la bandeja de sistema
PRAMO
: DOCUMENTACIÓN | 54
pramo | PRAMOSOFTWARE.WORDPRESS.COM 2016/12 - beta 5 · [NUEVO] Sinopsis: bucle, tipodeunidad, variableasignada, Impedir el uso de macros, Impedir el uso de operaciones matemáticas, reaplica línea actual, reaplica línea anterior, servicio, estadodelservicio y eliminaservicio · [NUEVO] Tipo de variable: @dato · [NUEVO] Macros: @portapapeles, @rutadelacarpetadePerfiles, @barravertical, @bitsdelsistemaoperativo, @tiempodefuncionamientodelPCensegundos, @tiempodefuncionamientodelPCenminutos, @tiempodefuncionamientodelPCenhoras, @tiempodefuncionamientodelPCendías, @tiempodefuncionamientodelPCensegundosparciales, @tiempodefuncionamientodelPCenminutosparciales y @tiempodefuncionamientodelPCenhorasparciales · [NUEVO] Desarrollado el concepto de sinopsis de fin de línea opcional (SFLO) y sinopsis de fin de línea imperativo (SFLI) · [NUEVO] Pulsaciones fijas y soltado de teclas para todas las teclas posibles que soporta Pramo · [NUEVO] La sinopsis esunnúmero posee dos nuevos parámetros con el símbolo Unicode 2264 (menor o igual que) y 2265 (mayor o igual que) para tales comparaciones · [NUEVO] Las sinopsis año, mes, díademes, hora, minuto y segundo poseen dos nuevos parámetros con el símbolo Unicode 2264 (menor o igual que) y 2265 (mayor o igual que) para tales comparaciones · [NUEVO] Parámetro milisegundos en la sinopsis esperahasta · [NUEVO] La sinopsis comparatexto tiene dos nuevos parámetros: contiene y contieneliteralmente · [NUEVO] La sinopsis externa -mensaje posee un parámetro adicional llamado -encimadetodo · [NUEVO] Teclas interpretadas: [ESCAPE] / [ESC], [MENÚ CONTEXTUAL], [ENTRAR NUMÉRICO] (como alternativa a [INTRO NUMÉRICO]), [RETROCESO] / [RETROCEDER], [ENTRAR] (como alternativa a [INTRO]), [BARRA ESPACIADORA] (como alternativa a [ESPACIO]) Por último, a [TAB], [CTRL], [ALT] y [MAYS] se le unen las variantes idénticas pero en formato extendido [TABULADOR], [CONTROL], [ALTERNATIVA] y [MAYÚSCULAS], además de las variantes izquierda y derecha de las tres últimas · [NUEVO] Creado un listado coherente de códigos de retorno / error para Pramo · [CAMBIADO] La sinopsis activa log se reemplaza por activa informe · [CAMBIADO] Los ficheros de informe creados por Pramo tienen el siguiente formato a partir de ahora: Pramo [nombredelficherodesinopsis].informe.txt · [CAMBIADO] Un gran número de teclas relacionadas con pulsaciones se activan con un texto diferente para ser más claras y homogéneas entre sí: la serie [#NUMÉRICO] pasa a ser [# NUMÉRICO]; [MÁSNUMÉRICO], [MENOSNUMÉRICO], [ASTERISCONUMÉRICO] y [DIVISORNUMÉRICO] poseen ahora un espacio entre cada palabra; [WINIZQ] y [WINDER] pasan a ser [WINDOWS IZQUIERDA] y [WINDOWS DERECHA] y de igual modo lo hacen las teclas de CTRL, ALT y mayúsculas (conservando también la variante con el nombre de la tecla reducida); [PÁGINA-ARRIBA] y [PÁGINA-ABAJO] se convierten en [PÁGINA ARRIBA] y [PÁGINA ABAJO]; [BARRAVERTICAL] en [BARRA VERTICAL]; [IMPRIMIRPANTALLA] en [IMPRIMIR PANTALLA]; [BLOQUEARDESPL] en [BLOQUEAR DESPLAZAMIENTO]; [BLOQUEARTNUM] en [BLOQUEAR TECLADO NUMÉRICO]; [BLOQUEARMAYS] en [BLOQUEAR MAYÚSCULAS] Las pulsaciones del cursor se convierten desde [FLECHA-ARRIBA] a [FLECHA ARRIBA] y similares
PRAMO
: DOCUMENTACIÓN | 55
pramo | PRAMOSOFTWARE.WORDPRESS.COM · ·
· · · · · · · · · · · · ·
· · · · · · · ·
[CAMBIADO] Todas las sinopsis de fin de línea pasan a ser sinopsis de fin de línea opcional (excepto las de fin imperativo: saltodelínea y salir) [CAMBIADO] Todas las comprobaciones para enviar información de depurado a fichero de informe se realizan inmediatamente antes de hacer la petición -en lugar de calcular los datos que ha de recibir el fichero de informe y comprobar después si se va a enviar-, de modo que el rendimiento de Pramo cuando no se utiliza el depurado ha mejorado sensiblemente (desde varias décimas a un segundo, en igualdad de condiciones) [CAMBIADO] Las tres sinopsis con inicio de elementos (iniciaprograma, iniciaprogramacomo e iniciaobjeto) ahora informan -de ser activado el fichero de informe- del tiempo detallado que tardó el elemento en terminar su funcionamiento cuando se ejecuten en modo espera [CAMBIADO] Las sinopsis año, mes, díademes, hora, minuto y segundo cambian su sintaxis desde +sinopsis:## a sinopsis:>## y desde -sinopsis:## a sinopsis:/# y retrasoenmilisegundos, retraso y segs > retrasoensegundos, mins > retrasoenminutos, retrasovisual > retrasovisualensegundos, servicioestado > serviciocambiadeestado, esperaalproceso > esperaproceso y modificaregistrodewindows > editaregistrodewindows · [CAMBIADO] La sinopsis títuloparcialdeventanaactual desaparece y se integra en títulodeventanaactual por ser más práctico y eficiente · [CAMBIADO] Todas las variables (tanto @programa como @conjunto) pasan a tener 99 unidades cada una · [CAMBIADO] Los parámetros de las variables @conjunto pueden emplear macros PRAMO
: DOCUMENTACIÓN | 62
pramo | PRAMOSOFTWARE.WORDPRESS.COM · · ·
· · · · · · · · · · · · · · · · · · · · · ·
[CAMBIADO] La sinopsis accesodirectoalficheroactual permite el empleo de macros [CAMBIADO] Se ha añadido soporte para operaciones matemáticas en las sinopsis esunnúmero y coordenadasdemensajesemergentes [CAMBIADO] Se ha añadido soporte para macros y operaciones matemáticas en las sinopsis retrasoenmilisegundos, retrasoensegundos, retrasoenminutos, retrasoenhoras, retrasovisualensegundos, saltodelínea, esperahasta, x&y, clickx&y y dobleclickx&y [CAMBIADO] Los ficheros de log (informe y depuración) creados por Pramo tienen el siguiente formato desde ahora: Pramo [ nombredelficherodesinopsis ].log.txt con objeto de ser fácilmente operables desde cualquier explorador de ficheros [CAMBIADO] La sinopsis azarlínea se rediseña para ser más clara, estableciendo el valor indicado como tope y porcentaje de acierto. Se permite señalar un símbolo de porcentaje -opcional- al final [CAMBIADO] La sinopsis fechadefichero ahora posee un separador para sus parámetros, de forma que resulten más legibles [CORREGIDO] Reescrito el depurado de todos los tipos de sinopsis para que los ficheros .log sean más informativos y estéticos [CORREGIDO] Ampliado el depurado de macros [CORREGIDO] Revisado el control del título de las ventanas de Pramo, lo que ha corregido un problema con la sinopsis Instancia única [CORREGIDO] El cálculo del ancho para el parámetro -mensaje ha sido corregido y reformulado [CORREGIDO] Error eliminado en el informe de la sinopsis envíaconjuntoaprograma [CORREGIDO] Errata corregida en la aplicación de los conjuntos @programa y varias modificaciones estéticas e informativas [CORREGIDO] Prevenido un problema potencial al emplear valores aleatorios en el parámetro -mensaje [CORREGIDO] Reajustados los valores de la dimensión de la ventana para el parámetro -mensaje para ser más eficiente en diferentes configuraciones visuales de Windows [CORREGIDO] Reajustados los valores de la posición de la ventana para el parámetro -desubicado para ser más eficiente en diferentes configuraciones visuales de Windows [CORREGIDO] Reestructuradas para ser más eficientes e informativas las sinopsis: retraso, milisegs, segs y mins [CORREGIDO] Reescrita la sinopsis esperaproceso para ser más versátil [CORREGIDO] Revisada la sinopsis saltodelínea para indicar que es una sinopsis de fin de línea [CORREGIDO] Revisadas y corregidas las sinopsis accesodirectoalficheroactual, procesoprioridad, borracarpeta, ruedahaciaarriba y ruedahaciaabajo [CORREGIDO] Revisadas y corregidas todas las comprobaciones de errores de sintaxis [CORREGIDO] Unificada la gestión de mensajes de error en una sola función, de forma que los mensajes genéricos puedan ser homogéneos [CORREGIDO] Ampliado el informe de error para cierres por parámetros incorrectos [CORREGIDO] Evitada la repetición de primeras líneas de los ficheros de log [CORREGIDO] Arreglado un pequeño problema con la carga de parámetros -log por línea de comandos que en ocasiones no generaba un fichero de log [COMPROBADO] La compatibilidad de Pramo con Microsoft Windows 8, 8.1 y 10 está revisada y preliminarmente aceptada. Pramo requiere un sistema operativo Windows XP (actualizado) o superior
PRAMO
: DOCUMENTACIÓN | 63
pramo | PRAMOSOFTWARE.WORDPRESS.COM 2014/07 - beta 2 · [NUEVO] Sinopsis: modificaregistrodewindows, borraregistrodewindows, ruedahaciaarriba, ruedahaciaabajo, iniciaprogramacomo, serviciotipodeinicio · [NUEVO] Macros: @rutadeSistema32bits, @rutadeSistema64bits · [NUEVO] Las sinopsis externas -mensaje y -mensajeconfirmar poseen un parámetro adicional llamado -icono# · [CAMBIADO] Sinopsis modificadas: servicio > servicioestado, Apaga monitor > apagamonitor, Inicia Salvapantallas > iniciasalvapantallas · [CAMBIADO] Se han fragmentado las sinopsis x&y, clickx&y y dobleclickx&y respecto a sus parámetros para ser más inteligibles y claras de utilizar · [CORREGIDO] Errata corregida en la definición de uno de los conjuntos @programa · [CORREGIDO] Erratas corregidas en la formación y aplicación de los conjuntos @programa · [CORREGIDO] Una variable auxiliar para la recarga de ficheros de sinopsis no estaba definida, lo que provocaba un cierre con error cuando no se depuraba la ejecución · [CORREGIDO] Una verificación incorrecta de valor provocaba que la sinopsis Velocidad de movimiento del ratón no se aplicase · [CORREGIDO] Errata corregida que impedía el correcto funcionamiento de la sinopsis miliseg · [CORREGIDO] La sinopsis servicioestado ha sido optimizada y, como resultado, acaba antes · [CORREGIDO] Revisado y mejorado el depurado de todas las acciones para que los ficheros .log sean más informativos · [CORREGIDO] Correcciones estéticas de los textos informativos · [CORREGIDO] Adecentado y estandarizado de los comentarios en el código
PRAMO
: DOCUMENTACIÓN | 64
pramo | PRAMOSOFTWARE.WORDPRESS.COM 2014/04 - beta 1 · [ Sin historial de cambios respecto a la versión alfa ]
PRAMO
: DOCUMENTACIÓN | 65