Ayuda con la creación de un archivo .bat

Iniciado por Strucker, 2 Septiembre 2018, 21:31 PM

0 Miembros y 1 Visitante están viendo este tema.

Strucker

Buenas!! Vereis quería pedir ayuda a alguien que sepa crear archivos .bat.

Estaba creando archivos .bat para emuladores de consolas para automatizar el arranque de juegos y tal, y quería crear un archivo .bat para que me abriese automáticamente las opciones de configuración del emulador. Es decir, que me abra la ventana de configuración del emulador directamente (y si fuese posible, que al terminar se me cerrase todo automáticamente).

No sé si será esto posible, la verdad que me tiene mareado esto jajaja. Se arrancar el emulador con un archivo .bat, pero no sé como decirle que me abra directamente las opciones...

(no lo pido solo para emuladores, quisiera aprender para poder crear archivos .bat que me arranquen determinadas ventanas de un programa)

Muchas gracias!!

Machacador

Mira en este sub-foro: https://foro.elhacker.net/scripting-b64.0/ ...fíjate en los primeros post que están con chncheta...

:rolleyes: :o :rolleyes:

Saludos.
"Solo tu perro puede admirarte mas de lo que tu te admiras a ti mismo"

Eleкtro

#2
Cita de: Strucker en  2 Septiembre 2018, 21:31 PMNo sé si será esto posible

Batch es una herramienta de programación básica y extremadamente limitada, en la que no es posible hacer lo que pides. Para ello necesitas utilizar un lenguaje de programación sofisticado.

Mediante el uso de programación, la solución con menor dificultad sería desarrollar un algoritmo basado en la simulación de eventos del teclado, es decir, enviar pulsaciones de la tecla tabulación hasta que el control deseado obtenga el foco/entrada de datos del teclado, y presionar la tecla enter; pero que esto se pueda llevar a cabo o no siempre dependerá de como haya sido desarrollado el programa. Esto lo puedes llevar a cabo mediante lenguajes soportados de forma nativa en Windows como son Visual Basic Script o Powershell.

Me he limitado a mencionar la ruta más simple y directa (y usando los lenguajes disponibles más a mano en Windows) que en principio te debería servir para todo tipo de programas por cuyos controles te puedas mover con el uso del teclado, de lo contrario siempre puedes crear una macro basada en coordenadas mediante la simulación de eventos del ratón (colocar el puntero del ratón en las coordenadas del control, y presionar botón izquiero del ratón). Si esto tampoco te sirve pues en esencia lo que hagas consistira en realizar un análisis del árbol de ventanas del programa, y el envío de mensajes de ventana. Para esto VBS no te sirve, Powershell si.

Por supuesto también puedes recurrir a cualquier otro lenguaje que pueda ser de tu preferencia como AutoIt, AutoHotkey, Python, Ruby, C# o VB.NET, etc.

Saludos.








EdePC

- Batch trabaja sobre línea de comandos, puedes utilizar esta característica para mandar órdenes, comandos, flags, etc. si el programa (emulador) permite y soporta el uso de comandos, por ejemplo:

snes9x -fullscreen "C:\jueguitos\SNES\Super Mario Bross.smc"

-- Como dije dependerá del programa, lee la documentación y/o busca en google algo como: mi_programa command line options

-- Al utilizar Batch puedes organizar y/o manejar mejor los comandos que utiliza el programa, dependerá de tu destreza utilizando Batch.

- También puedes utilizar Batch o cualquier otro, para editar ficheros de configuración que utilice tu emulador, siempre hay varias maneras de resolver un problema. Por ejemplo el emulador snes9x utiliza un fichero snes9x.conf donde guarda toda su coniguraciòn.

- Lee la documentación que ha puesto Machacador si vas a utilizar Scripts tipo Batch, VBScript, etc. Considera en comentario de Elektro si quieres manipular la interfàz de un programa como si un ser humano lo estarla haciendo (mover el mouse, usar mètodos abreviados del teclado, dar clicks, escribir, etc)

Eleкtro

#4
Hombre claro está, se asume que si un emulador proveyese la capacidad de enviarle argumentos por linea de comandos que puedan reproducir exactamente la característica que en un principio desea realizar mediante la manipulación de la interfaz de usuario pues debe llevarlo a cabo de esa manera antes que considerar cualquier otra solución alternativa.

Pero recordemos que el usuario ha preguntado por una solución genérica para todo tipo de programas no solo para emuladores. La cantidad de aplicaciones con interfaz gráfica que proveen argumentos por linea de comandos es una cantidad ridícula como para considerarlo algo común o un estándar, son aplicaciones orientadas a permitir su automazión de inicio, como por ejemplo en este caso lo es la mayoría (sino todos) de emuladores de consola; y los programas que utilizan un archivo local y de texto plano para definir los parámetros de configuración del programa, tampoco es algo muy común. Pero si, dependiendo del programa logicamente ese tipo de soluciones podría (o no) servirte para lograr tu objetivo.

Con respecto a la manipulación de archivos de texto plano, me gustaría comentarle al usuario que Batch no merece la pena, la limitación de Batch obliga al programador a aplicar malos hábitos de programación que resultarán en tediosos y engorrosos códigos mal estructurados, lo que se conoce como un código espagueti. Considera usar cualquier otro lenguaje (un lenguaje de verdad) en lugar de Batch.

Saludos