gatilidades | GATILIDADES.WORDPRESS.COM
Pramo
solución multipropósito para automatizar procedimientos mediante acciones y condiciones de forma clara y sencilla
Beta 3 Madrid (ES) - Agosto 2015 Santiago G. Rojo (gAt0)
[email protected] http://gatilidades.wordpress.com
PRAMO
: DOCUMENTACIÓN | 1
gatilidades | GATILIDADES.WORDPRESS.COM
ÍNDICE DE CONTENIDO |01. Licencia.....................................................................................................................2 |01.1. Copyright y marcas registradas.....................................................................3 |02. Información general...............................................................................................3 |02.1. Pramo — Su conveniencia...............................................................................4 |03. Uso.............................................................................................................................6 |03.1. Tutorial — Introducción..................................................................................7 |03.2. Tutorial — Primeros pasos..............................................................................9 |03.3. Tutorial — Complicaciones menores...........................................................11 |03.4. Tutorial — Complicaciones aplicadas..........................................................13 |03.5. Tutorial — Situaciones condicionadas........................................................14 |04. Ejemplos aplicados................................................................................................15 |05. Problemas conocidos............................................................................................16 |06. Dudas y preguntas comunes...............................................................................17 |07. Historial..................................................................................................................19
PRAMO
: DOCUMENTACIÓN | 2
gatilidades | GATILIDADES.WORDPRESS.COM
|01. Licencia Las versiones beta de Pramo se distribuyen bajo las siguientes condiciones de uso: 1. Este programa -entendiéndose este programa y el programa por Pramo, aquí y en lo sucesivoes gratuito y libre de ser usado por cualquiera. 2. El programa se ofrece sin garantía de fiabilidad, eficacia o exención de fallos de diseño y funcionalidad. 3. El usuario -es decir, cualquiera que emplee este programa y/o sus funciones- utiliza Pramo bajo su propia responsabilidad. 4. El autor del programa no será responsable de los daños derivados a causa de la utilización o mal uso del programa, incluso si ya hubiera sido advertido de la posibilidad de tal daño o error. 5. El autor no condena aunque tampoco alienta el uso comercial de este programa y sus proyectos derivados. 6. El autor promueve el uso ético y honesto de este programa; de manera que su aplicación con intenciones maliciosas, dañinas, engañosas o incumplidoras con la ley vigente española en materia de delitos informáticos invalidan la licencia de uso a tal o tales usuarios, sean personas físicas o jurídicas.
|Nota: Las versiones beta dejan de funcionar al año de ser publicadas. Descargue Pramo de nuevo para ampliar el tiempo de uso. Tenga en consideración las posibles repercusiones en su sistema operativo de modificar la fecha de sistema azarosamente.
|01.1. Copyright y marcas registradas El icono empleado en Pramo procede del Metro UI Icon Set, diseñado por daKirby309. En la documentación de Pramo se han utilizado las siguientes tipografías: • • •
Noto Sans UI - Propiedad de Google y empleada bajo la Licencia Apache 2.0 Droid Sans Mono - 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
Otros productos y marcas protegidas con derechos de copia y explotación cuyos nombres sean mencionados -en el programa y este u otros documentos- pero no directamente acreditados están registrados por sus respectivas compañías/dueños y como tales son reconocidos.
PRAMO
: DOCUMENTACIÓN | 3
gatilidades | GATILIDADES.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 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 de que dispone el programa. La ejecución 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. Una vez ejecutado, si algo no sale como se esperaba o se ha cometido un error de sintaxis puede activarse un modo de depurado durante la ejecución que generará un informe -en un fichero de texto fácil de entender- por cada fichero de sinopsis con toda la secuencia de acciones realizadas, el cual indicará los errores o problemas encontrados.
El programa es completamente portátil e independiente. No graba información ni siquiera en su propia carpeta, salvo que el usuario lo indique explícitamente. Al borrar la carpeta que lo contiene queda eliminado completamente por lo que no se suministra un desinstalador. Pramo es compatible con las versiones 32 y 64 bits de sistemas Microsoft Windows XP, Vista, 7, 8 y 10.
|En esencia: • • • • • •
Pramo es una solución sin requisitos, autónoma y portátil para automatizar eventos sus posibilidades abarcan una 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 -en esencia, 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, indicarle 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.
La palabra ‘pramo’ proviene del idioma Esperanto y significa lanzadera. Pramo evolucionó desde un rudimentario lanzador de programas con retrasos entre sí.
PRAMO
: DOCUMENTACIÓN | 4
gatilidades | GATILIDADES.WORDPRESS.COM
|02.1. Pramo — Su conveniencia Pramo está planteado para que cualquiera pueda extraer un beneficio práctico de él. Esto es así puesto que todo se hace del modo más sencillo posible: con una estructura clara y fácil de entender empleando órdenes en español. Es por esto que Pramo posee el lenguaje de automatización de más alto nivel conocido (entendiendo nivel como el grado de cercanía al chip) para un hispanohablante, de manera que su curva de aprendizaje tiene una accesibilidad excelente. La diversidad de condiciones y acciones que ofrece Pramo permite automatizar tareas mecánicas 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 para que cada fichero se comporte como una función esencial y, en la práctica, un objeto. Así pues, con esta flexibilidad fuera de lo común, es competente para realizar un gran abanico de encargos, eliminando el tiempo empleado delante de una pantalla y ahorrando incontables horas de trabajo manual ya sea en la administración y mantenimiento de sistemas empresariales o en quehaceres ocasionales. 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 tan 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 en diferentes ficheros. O, por ejemplo, emular las labores del conocido cron de los sistemas tipo-Unix. Todo con un facilidad pasmosa. Pramo puede servir para llevar una lista con anotaciones -visuales o sonoras- para recordar a horas y/o días concretos, para cargar listas de páginas web, para ordenar o vaciar 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 indirectos a ordenadores, para realizar capturas de pantalla cada cierto tiempo y guardarlas en la carpeta de cada usuario, para monitorizar una carpeta y mover los ficheros que allí vayan apareciendo a otras carpetas según diferentes criterios, para programar la escucha de canciones a ciertas horas, para conciliar el sueño poniendo sonidos o música progresivamente más bajos, 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. Como puede verse, no hay delimitación en sus aplicaciones, porque no fue diseñado con esa premisa; aunque tampoco hay un lenguaje de programación que aprender, por tanto no existe una flexibilidad 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.
La idea básica tras Pramo es acercar al usuario sus intenciones — quitando de en medio gran parte del procedimiento que se encuentra entre la idea y su consecución. De manera que el cómo se convierta en un aspecto breve y temporal para proyectos o problemas esencialmente rutinarios, mecánicos o lineales. PRAMO
: DOCUMENTACIÓN | 5
gatilidades | GATILIDADES.WORDPRESS.COM
|03. Uso Dado que Pramo no se utiliza directamente, sino que sus funciones son invocadas 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. Progresivamente, irán viéndose otras sinopsis de mayor complicación y la manera en que pueden combinarse entre sí para interaccionar de la forma deseada.
sinopsis. (Del lat. 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.
PRAMO
: DOCUMENTACIÓN | 6
gatilidades | GATILIDADES.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) — esto es muy importante. Si no tiene ninguno a mano -so pena de usar el bloc de notas de Windows- recomendamos encarecidamente Notepad++ o Notepad2, ambos 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 la estructura de la línea. Aunque en posteriores ejemplos cada parámetro se detallará con claridad. Una vez grabado el fichero y ejecutado Pramo -seleccionando después el fichero en la ventana de explorador que muestra Pramo o, alternativamente, pasando la ruta completa del fichero como parámetro- esto no hará más que abrir la calculadora de Windows.
Realizando el siguiente cambio puede elaborarse un poco más: 1 2
iniciaprograma|c:\WINDOWS\system32\calc.exe retrasoensegundos:1|5+3|retrasoensegundos:1|[INTRO]
En ambas líneas aparecen varias barras verticales "|" (concretamente, el caracter 124 en código ASCII, que normalmente se muestra pulsando la combinación de teclas [Alt Gr] + la tecla 2). Cada una de las barras es un separador de órdenes y esas órdenes pueden ser, para empezar, acciones o condiciones. En la primera línea separa una sinopsis de su parámetro -en gris claro-, que indica la ruta y nombre del fichero a ejecutar. En el caso de la segunda línea separan cuatro acciones: La primera es una orden de retraso; Pramo se detiene y deja de realizar las indicaciones -deja de funcionar- durante el tiempo indicado por la cifra (en segundos). Posteriormente escribe una simple operación matemática y, tras esperar otro segundo, pulsa la tecla intro, con lo que se muestra el resultado en la calculadora. Como puede observarse, el envío -como pulsación de teclado- de números, letras y palabras se hace directamente sin más particulares. No requieren indicaciones previas, sinopsis especiales o cualquier otra condición. Adicionalmente, también se puede enviar combinaciones de teclas, pero esto queda para la próxima sección del tutorial. Del mismo modo que se han 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; antes de esa orden sí, después no, puesto que es una sinopsis de final de línea. Más adelante quedará claro el porqué.
PRAMO
: DOCUMENTACIÓN | 7
gatilidades | GATILIDADES.WORDPRESS.COM Para introducir comentarios en el texto -de forma que sean aclaratorios de lo que se ha escrito o con el fin de resaltar el contenido de diferentes párrafos- puede incluirse al comienzo de línea 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 |retrasoensegundos:1|6+2|retrasoensegundos:1|[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.
|En esencia: • Las sinopsis de Pramo se escriben tal cual aparecen en la lista de vocabulario, sin símbolos o puntuación adicional. • Cada sinopsis tiene una estructura diferente con la que utilizar parámetros: algunos estarán dentro de la propia sinopsis (como los de retrasoensegundos), otros serán independientes (como los de iniciaprograma) y otros no serán necesarios (como en el caso de envío de pulsaciones o teclas especiales). • Entre cada sinopsis y cada uno de sus parámetros independientes se emplea un separador — una barra vertical "|" (concretamente, el caracter ASCII nº 124 que aparece con la combinación [Alt Gr] + 2).
• •
Las barras verticales sirven también para separar sinopsis entre sí, de forma que ellas son el esqueleto fundamental de Pramo, pues delimitan sus elementos principales. Además, las barras sirven para convertir el contenido de una línea en un comentario -que no será interpretado por Pramo- siempre que se ubiquen al comienzo de ellas; sino no.
|Nota: La lista completa de sinopsis puede consultarse en el documento auxiliar Pramo - Anexo – Vocabulario (.PDF).
PRAMO
: DOCUMENTACIÓN | 8
gatilidades | GATILIDADES.WORDPRESS.COM
|03.2. Tutorial — Primeros pasos Prosigue el tutorial pausadamente para dejar claro el concepto de sinopsis y el modo en que se estructuran sus ficheros. De vuelta a las operaciones con la calculadora de Windows, veamos un ejemplo práctico para mayor comodidad y seguir ampliando las posibilidades de Pramo. Imaginemos que necesita calcular un porcentaje habitualmente. Por ejemplo, el actual tipo general de IVA (21%) de una cifra que esté en el portapapeles. Y se hará de tal manera que el programa pueda, indirectamente, interactuar con el usuario, permitiendo que la cifra no tenga que ser siempre la misma. Una forma con la que podría lograrse esto sería: 1 2 3
iniciaprograma|c:\WINDOWS\system32\calc.exe retrasoensegundos:1|[CTRL]v|*0.21|[INTRO] retrasoensegundos:5|cierraproceso|calc.exe
¿Qué sucede en estas líneas? El programa pega, según se indica en la segunda línea (mediante el envío de CTRL+v), lo que hubiera en el portapapeles — que, como ya se dijo, sería la cifra de la cual se quiere calcular 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. [INTRO], por otro lado, conforma el envío de una tecla especial, equivalente a Intro/Retorno/Enter. (La lista completa también aparece en el documento de vocabulario mencionado). En la tercera línea -que bien podría haberse unido con la segunda, pero no se ha hecho por legibilidadencontramos una nueva acción, cierraproceso, que no posee un parámetro inmediato sino que éste se encuentra en el siguiente segmento. Su efecto, evidentemente, es cerrar el proceso -en memoriaindicado como parámetro. Se cierra la calculadora tras haber mostrado el resultado un tiempo prudencial.
Tal como se ha visto, cuando el contenido de una sinopsis (lo que se encuentra entre cada separador) no conforma una orden conocida por Pramo, éste lo interpretará como texto a enviar tal cual — es decir, como pulsaciones de teclas. Y en ese texto pueden incluirse también combinaciones de teclas tales como CTRL+v, sin importar que vayan junto con texto o en un segmento aparte.
|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 se indiquen o sea menester: No será lo mismo pulsar CTRL+v que CTRL+V — y, del mismo modo, el programa puede enviar texto en uno u otro formato.
PRAMO
: DOCUMENTACIÓN | 9
gatilidades | GATILIDADES.WORDPRESS.COM |En esencia: • Las sinopsis pueden aparecer encadenadas en una misma línea indefinidamente siempre que no sean de final de línea; aunque es más práctico y legible dividirlas en pequeños conjuntos de acciones. • Pramo interpreta como teclas o pulsaciones todo lo que no sea sinopsis, de forma que la revisión de una correcta sintaxis es esencial. Y, por esto, no proporciona ventanas o mensajes de error al usuario. •
•
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; de igual modo, 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 log al comienzo del mismo o, alternativamente, el parámetro de línea de comandos "-log". Puede encontrar más información al respecto en las secciones "07. Definiciones y configuraciones" y "10. Línea de comandos" del documento auxiliar Pramo - Anexo – Vocabulario (.PDF).
PRAMO
: DOCUMENTACIÓN | 10
gatilidades | GATILIDADES.WORDPRESS.COM
|03.3. Tutorial — Complicaciones menores Algunas acciones de Pramo pueden poseer parámetros obligatorios -como las ya vistas retrasoensegundos o cierraproceso- y, en el caso de otras, son opcionales — como es el caso de la ejecución de programas. Veamos un ejemplo de eso mismo, la ejecución de un programa con todas las posibilidades que ofrece Pramo: 1 iniciaprograma|c:\WINDOWS\system32\notepad.exe|c:\documento de prueba.txt| c:\|maximizado|0
Esta es una línea con múltiples detalles a explicar. De primeras, aparecen seis segmentos delimitados por separadores, siendo el primero 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 -en este caso, otro nombre de fichero- es el parámetro que se le entrega al programa ejecutado. Puede observarse que hay espacios en la ruta y no se han empleado comillas: Pramo no necesita de esto y no hay posibilidad de errores siempre que se respete la sintaxis y empleen adecuadamente los separadores. 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 si es necesario-, si no especifica una ruta se empleará, caso de ser necesario, la carpeta donde se encuentre el programa. Este parámetro es equivalente a la sección “Iniciar en:” de un acceso directo. El cuarto parámetro indica la forma en que se ejecutará la ventana del programa, habiendo cuatro posibilidades: normal/oculto/minimizado/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: 1 (uno) indica que espere, 0 (cero) -predeterminado- que no lo haga. Todos los segmentos son opcionales salvo el primero. Y 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||||1
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 lo cierre para seguir con ellas.
PRAMO
: DOCUMENTACIÓN | 11
gatilidades | GATILIDADES.WORDPRESS.COM Démosle una vuelta de tuerca más ampliando su potencial con un elemento extra: las macros. Veamos esta línea: 1 díadesemana:Lunes|iniciaprograma|c:\WINDOWS\system32\mspaint.exe| @rutadeMisDocumentos\imagen1.jpg||maximizado
La primera sinopsis es una condición, díadesemana, cuyo parámetro es el día de la semana que se establece como requisito para continuar la ejecución. Si se ejecuta esta línea un lunes procedería sin más novedad. De otro modo, la línea es obviada a partir de ahí. Después, se ejecuta la aplicación Paint de Microsoft Windows con un parámetro que es nuevo en el tutorial: comienza con el símbolo de arroba. Repasando la anterior descripción de la sinopsis iniciaprograma puede comprobarse que el segmento indica el parámetro que recibe el programa. La macro @rutadeMisDocumentos es reemplazada durante la ejecución 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 -la contrabarra se añade porque las macros de ruta no la incluyen al final-; El parámetro a la carpeta donde se inicia el programa queda vacío pero no el siguiente, por lo que se ejecutará maximizado.
|En esencia: • Las sinopsis con parámetros opcionales emplean dos separadores consecutivos -sin espacio entre ellos- cuando un parámetro no se vaya a utilizar. • Las macros de rutas no poseen la contrabarra final y deberá añadirse manualmente si se desea finalizar una ruta hacia un fichero. • Cuando las sinopsis de inicio/ejecución de programas y objetos no tienen indicada una ruta de trabajo, y el programa la necesita, Pramo les asignará la propia carpeta donde se encuentre el programa u objeto en cuestión. • Pramo no necesita de comillas para sí mismo cuando las rutas o parámetros de sinopsis incluyan espacios, puesto que se delimitan con separadores; aún así, es posible que, en caso de ejecutar líneas de comandos para otros programas, las cuales incluyan parámetros y rutas, sea necesario emplear comillas para diferenciar un parámetro con espacios de otro parámetro distinto.
PRAMO
: DOCUMENTACIÓN | 12
gatilidades | GATILIDADES.WORDPRESS.COM
|03.4. Tutorial — Complicaciones aplicadas Es fácil ver el potencial que tiene el uso de una macro cuando se busca versatilidad. Como en el siguiente ejemplo: accesodirectoalficheroactual|=|@rutadeAutoArranque -hora:15|iniciaprograma|c:\Program Files\Windows NT\Accessories\wordpad.exe|@rutadeMisDocumentos\mañana.doc 3 +hora:14|iniciaprograma|c:\Program Files\Windows NT\Accessories\wordpad.exe|@rutadeMisDocumentos\tarde.doc 1 2
Estas tres líneas, guardadas en un fichero de sinopsis realizan una conexa e importante serie de tareas. La primera sinopsis es una acción que genera un acceso directo en el autoarranque general de Windows, de forma que cuando inicie sesión cualquier usuario con cuenta en ese sistema, se ejecutará. Obsérvese la macro utilizada que establece un autoarranque para todos los usuarios. La segunda y tercera líneas tienen estructuras idénticas, aunque con un par de diferencias. Ambas empiezan con una condición que obliga, para que la línea siga ejecutándose, a que la hora del sistema sea mayor o menor a la indicada. Después ejecuta un programa, el WordPad de Windows -un editor de texto- incluyendo la macro @rutadeMisDocumentos, que es reemplazada por la ruta hacia la carpeta de Mis Documentos del usuario actual. ¿De qué manera serían útiles esas sinopsis en una situación real? Veamos el siguiente supuesto. Unas oficinas de empresa. En esa entidad imaginaria, cada trabajador en cada PC tiene una cuenta de Windows con sus documentos correspondientes; y 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, 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), comparten PC una serie de trabajadores que no pueden mezclar sus informes. Sin cambiar una letra, este ejemplo sería un modo tremendamente fácil de hacer que cada usuario tenga a mano su documento oportuno en 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 según acceda por la mañana o por la tarde. Imagínese que esto ocurre, no en uno, sino en quince o en noventa y cinco ordenadores. Es indiferente. Y, por supuesto, se puede complicar y elaborar mucho más con otros tipos de sinopsis.
|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 | 13
gatilidades | GATILIDADES.WORDPRESS.COM
|03.5. Tutorial — Situaciones condicionadas Dado que la ejecución condicionada de diferentes líneas de sinopsis es la baza principal 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 lenguaje que emplea el programa. La presentación de condiciones no va presentada por una estructura fija sino que son las propias condiciones quienes la 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. Fíjese en la siguiente línea: 1 -hora:09|NOprocesoexistente|abiword.exe|ficheroexistente| @rutadeMisDocumentos\Revisar\*.doc|iniciaprograma|Pramo.exe|-mensajeconfirmar "Tarea" "Hay documentos por revisar"
En ella aparecen 3 condiciones encadenadas y tras ellas una acción de inicio de programa. Las condiciones son adicionales, de manera que si una de ellas falla la línea se deja de procesar y la acción final no llegará a ejecutarse. La primera sinopsis -hora es una condición que comprueba la hora del día (00-24) y, como indica el signo, para validarla debe ser menor que la hora indicada. Si son las 8 AM o antes la línea seguiría interpretándose. Después comprueba, con la sinopsis NOprocesoexistente, que en la memoria no exista el proceso indicado. Y, por último, verifica que existen ficheros -empleando un comodín- en la carpeta indicada. Si todas estas condiciones se cumplen, Pramo se inicia a sí mismo -en otra instancia- para activar una sinopsis externa, de línea de comandos, por la cual mostraría un mensaje informativo con botón de confirmación. Si hubiera más líneas, igual sería deseable establecer un retraso de tiempo, una pausa o iniciar el programa con una espera hasta que se cierre el mensaje informativo. Todas estas son diferentes sinopsis o parámetros de ellas. Como puede verse, Pramo puede llegar a encadenar tantas condiciones en una línea como sea menester, e igual ocurre con las acciones; salvo que éstas sean de final de línea, en cuyo caso pueden repetirse las condiciones en diferentes líneas todas las veces que sean necesarias para realizar el número de acciones requerido.
PRAMO
: DOCUMENTACIÓN | 14
gatilidades | GATILIDADES.WORDPRESS.COM
|04. Ejemplos aplicados A partir de ahora los ejemplos se tratarán como conjuntos y soluciones adaptadas más que como explicaciones, ensayos o consejos de líneas individuales. Cada uno será una utilidad o aplicación independiente del resto y lista para funcionar; explicándose también la intención de cada línea y sinopsis.
PRAMO
: DOCUMENTACIÓN | 15
gatilidades | GATILIDADES.WORDPRESS.COM
|05. Problemas conocidos ·
· ·
Por el momento no se descarta completamente la posibilidad de que resurja un problema antiguamente solucionado -justo antes de la primera beta- por el cual varias instancias de Pramo podían colisionar y cerrarse en cascada -sin indicación ni habiendo terminado su proceso lógico- cuando una de ellas se encontraba en modo cíclico bajo la sinopsis saltodelínea. La sinopsis iniciaprogramacomo aún no funciona en entorno de red, sólo puede establecer una nueva identidad en el sistema local. Es posible que las funciones de efecto sobre la pantalla no funcionen en disposiciones multimonitor.
PRAMO
: DOCUMENTACIÓN | 16
gatilidades | GATILIDADES.WORDPRESS.COM
|06. Dudas y preguntas comunes P01. ¿Es posible que Pramo llegue a confundirse si escribo un texto para enviar a la ventana actual y lo interprete, en su lugar, como una sinopsis -o viceversa-? R01. Pramo está diseñado para que no haya posibilidad de este tipo de malentendidos, incluso aunque haya palabras del texto que coincidan exactamente con nombres de sinopsis. Así pues, no, ese riesgo no existe y si se descubriese alguna posibilidad de que ocurra sería corregida inmediatamente.
P02. ¿Qué licencia tendrá Pramo finalmente? ¿Será de pago o gratis? ¿Será diferente según el tipo de uso? ¿Se publicará el código fuente? ¿Será abierto alguna vez? ¿Libre? R02. Hasta que no acaben las betas -por lo menos 2017- Pramo seguirá como está. Después se considerarán opciones.
P03. ¿Hay sinopsis indocumentadas? ¿Funciones o parámetros que no estén indicados? R03. No, nada. Se ha preferido no dejar un solo aspecto sin detallar pese a que pueda estar más o menos en pañales. Con esto se pretende evitar acusaciones de funcionamiento indebido o de posibles puertas traseras. Lo único que está fuera de control del usuario es la caducidad anual para forzar las actualizaciones. Esta caducidad es imperceptible y, una vez ocurra, sólo hará que Pramo se cierre al momento de arrancar. No hay comprobación con servidores o verificaciones adicionales aparte de la fecha del sistema. Pramo no está diseñado para "llamar a casa".
P04. ¿De qué forma puedo arrancar automáticamente un fichero de sinopsis a ciertas horas del día/semana/mes/etc.? R04. Todos los sistemas operativos de Microsoft -desde Windows XP- poseen la aplicación Programador de Tareas que permite iniciar un programa cuando se desee y con la identidad de usuario que prefiera. Microsoft ofrece varias guías según el sistema operativo: para Windows Vista/7 y para Windows XP. La idea para su ejecución es la misma que la de iniciar un fichero de sinopsis de forma no interactiva: pasar el nombre y extensión como parámetro al ejecutable Pramo.exe; tal como se indica en la sección 03.1. Tutorial de este documento.
P05. ¿Por qué unas sinopsis tienen espacios y otras no? R05. Los espacios -también presentes, por lo común, junto a la cualidad sinopsis de fin de línea- denotan la importancia de esa sinopsis. Suelen ser sinopsis que conforman definiciones/configuraciones de Pramo o alteran parámetros del sistema. Esta forma de destacarlas sirve para resaltar su importancia.
PRAMO
: DOCUMENTACIÓN | 17
gatilidades | GATILIDADES.WORDPRESS.COM P06. ¿Por qué existen sinopsis de final de línea (SFL)? R06. Es por una razón a la vez sencilla y lógica: hay sinopsis que -forzosamente o por obvia comodidadtienen un número variable u opcional de parámetros, por lo que, para evitar problemas teniendo que asumir o condicionar demasiado, se ha decidido que la mejor solución es dejarlas como sinopsis de final de línea. No todo está grabado en piedra; si hay alguna sinopsis que merezca salir de esta categoría y se pueda reestructurar con elegancia y sin generar problemas, se hará.
P07. ¿Cómo puedo diseñar una interfaz? ¿Qué hay que hacer para que genere una ventana con botones y menús? R07. Pramo es en esencia un automatizador de eventos y condiciones. Sus posibilidades para generar interacción visual con interfaz propia son casi nulas y seguirán así porque no es una mecánica que coincida con su concepto.
PRAMO
: DOCUMENTACIÓN | 18
gatilidades | GATILIDADES.WORDPRESS.COM
|07. Historial · ·
·
2014/04 - beta 1 2014/07 - beta 2 · [NUEVO] Nuevas sinopsis: "modificaregistrodewindows", "borraregistrodewindows", "ruedahaciaarriba", "ruedahaciaabajo", "iniciaprogramacomo", "serviciotipodeinicio" · [NUEVO] Nuevas 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 2015/08 - beta 3 · [NUEVO] Se han rediseñado las funciones de macros para permitir un número ilimitado de macros por parámetro en las sinopsis que tienen habilitado su uso · [NUEVO] Se ha creado la función de operaciones matemáticas simples, de forma que puedan realizarse en cierto número de sinopsis: suma (+), resta (-), multiplicación (*), división (/) y potenciación (^) · [NUEVO] En todas las operaciones matemáticas simples se pueden emplear los paréntesis para priorizar unas sobre otras · [NUEVO] Nuevas sinopsis: "Instancia única", "Comportamiento del icono de Pramo", "desplazaventana", "esperaventana", "esunnúmero", "retrasoenhoras", "+díademes", "-díademes", "+mes", "-mes", "+año", "-año", "+segundo", "-segundo", "Coordenadas de mensajes emergentes" y "esperahasta" · [NUEVO] Nuevas sinopsis externas: "-mensajeretrasovisual", "-icono" (que se ha independizado como una sinopsis de derecho propio), "-cierreconclickizquierdo" y "-cierreconclickderecho"
PRAMO
: DOCUMENTACIÓN | 19
gatilidades | GATILIDADES.WORDPRESS.COM · · · · · · · · · · · ·
· · · · · ·
·
[NUEVO] Nuevas macros: "@rutadeArchivosdePrograma32bits", "@rutadeArchivosdePrograma64bits", "@ratónX", "@ratónY", "@anchodepantalla", "@altodepantalla", "@nombredelPC", "@azar:#—#" [NUEVO] Nuevas opciones para la sinopsis externa "-mensaje": "-posSI", "-posSD", "posII", "-posID" y "-posC" [NUEVO] Definida la etiqueta 'operaciones matemáticas' -y rediseñada la función anexa- para la sinopsis: "@conjuntos", "coordenadasdemensajesemergentes" y las macros: "@azar:x-y" [NUEVO] Implementado el uso automatizado de tabuladores para los ficheros de log [NUEVO] Se ha verificado la inclusión del identificador de proceso (o PID) como opción sustituta al nombre de proceso en las sinopsis relativas a procesos: "procesoprioridad", "esperaproceso", "cierraproceso", "procesoexistente" y "NOprocesoexistente" [NUEVO] Añadido un depurado que marca e indica todas las interrupciones/rupturas de procesado de línea por error de sintaxis o parámetros incorrectos [CAMBIADO] Todos los ficheros de código se han convertido a formato UTF-8 (sin BOM) por lo que Pramo emplea e interpreta esta codificación de UTF para todos los ficheros de sinopsis y de log [CAMBIADO] El menú contextual del icono de Pramo está traducido a español y es más informativo sobre el estado de pausa [CAMBIADO] Pramo ahora muestra información de la versión en el explorador de ficheros cuando se inicia sin parámetros [CAMBIADO] Todas las sinopsis y macros con parámetros en su propio enunciado quedan separados por un símbolo de dos puntos ":" para que sean más legibles [CAMBIADO] Las sinopsis "díadesemana", "mes", "díademes" y "año" quedan convertidas en sinopsis con parámetros dentro de su enunciado [CAMBIADO] Sinopsis renombradas: "milisegs" > "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 [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
PRAMO
: DOCUMENTACIÓN | 20
gatilidades | GATILIDADES.WORDPRESS.COM · · · · · · · · · · · · · · · · · · · · ·
[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 final 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 | 21