Leer el teclado y lanzar aplicación o .bat con combinación de teclas

Buenas.

Sigo haciendome mis instaladores de mi juegos antiguos con DOSBox, con parches, modificaciones, etc para hacerlos funcionar en Win10, además de juegos de consolas empaquetados con su respectivo emulador para instalarlos "y a correr".

En algunos juegos antiguos y en algunos emuladores, necesito cargar una ISO/Imagen, y un programa que me ha venido de perlas para montarlas de "manera invisible" es WinCDEmu, ya que se pueden hacer cosillas con él a través de línea de comandos y se puede scriptar el montaje de la imagen con un lanzador (.bat) que incluya lanzar el WinCDEmu, montar la imagen, lanzar el JoyToKey/x360ce/Otro o algún mapeador del teclado en el mando con su configuración correspondiente (para juegos que no soportan los mandos modernos), y lanzar seguidamente el juego.

En el caso de los juegos de PC antiguos he ido pudiendo solucionar todo, pero el problema lo tengo ahora con algún emulador y los juegos multidisco, por ejemplo el PCSXR o el ePSXe.

Ambos pueden cargar la imagen de un juego directamente sin necesidad de WinCDEmu, pero el cambio de disco de los juegos multidisco, es un poco "porculero", así que he pensado en montar la imagen de los discos externamente con WinCDEmu, y sin salir del juego hacer el cambio de disco, cuando sea preciso, mediante una combinación de teclas.

Para montar un disco, lo montaría mediante un script en un fichero .bat, pero lo que necesito es algún software/programa (a ser posible que no requiera instalación para añadirlo en el directorio del juego), así podría lanzarlo a la vez con el emulador, que se mantenga leyendo el teclado constantemente, y que cuando yo pulse la combinación de teclas que fije para ello, me lance el .bat en cuestión.


Por ejemplo:

Si pulso Control + Alt + 1 que lance el fichero GameDiskMount1.bat
Si pulso Control + Alt + 2 que lance el fichero GameDiskMount2.bat
Si pulso Control + Alt + 3 que lance el fichero GameDiskMount3.bat
Si pulso Control + Alt + 4 que lance el fichero GameDiskMount4.bat

Alguien conoce algún soft que permita hacer algo similar?


Saludos.
@SGAN si no lo he entendido mal, tienes todo para montar las imágenes, pero necesitas poder ejecutar el archivo bat que lleva todo ese código de montaje, mientras estás en el juego?

Tendrás que crear un script para ejecutar ese bat https://autohotkey.com/download/ y convertirlo a un archivo exe con Ahk2Exe.exe, ejecutar ese exe y cuando lo necesites, pulsar la combinación de teclas con la que lo configuraste para iniciar ese bat.

Aquí tienes un ejemplo, para que no se te minimice el juego. https://autohotkey.com/boards/viewtopic.php?t=19288

Por ejemplo. este script ejecutará una bat que iniciará el bloc de notas, cuando se pulse la combinación de teclas Ctrl+Alt+1

^!1::
   Run, "c:\Users\SGAN\Desktop\1.bat",, Hide
return


Abre el bloc de notas y escribe tu script y lo guardas con la extensión .ahk, inicia el archivo Ahk2Exe.exe y convierte el script en archivo exe, ejecútalo, y cuando lo necesites, pulsa la combinación de teclas para iniciar el bat.

Aquí te pongo como se supone que lo quieres...

^!1::
   Run, "c:\Users\SGAN\Desktop\GameDiskMount1.bat",, Hide
return

^!2::
   Run, "c:\Users\SGAN\Desktop\GameDiskMount2.bat",, Hide
return

^!3::
   Run, "c:\Users\SGAN\Desktop\GameDiskMount3.bat",, Hide
return

^!4::
   Run, "c:\Users\SGAN\Desktop\GameDiskMount4.bat",, Hide
return


Te añado esta información http://xahlee.info/mswin/autohotkey_key_notations.html

Saludos
@killogy, respondo sólo para darte las gracias y que sepas que he leído tu mensaje, ahora empezaré a probar el autohotkey y miraré tu explicación y demás, a ver si puedo hacer lo que quiero y como quiero ;)


A ver si también encuentro algún save de algún juego multidisco de PSX/PSOne para hacer las pruebas y ver que el cambio de disco funciona bien :)


EDITO

Bueno, acabo de probar

1-. El exe resultante me puede valer perfectamente, se queda cargado en Windows a la derecha y reconoce perfectamente cuando pulso una combinación de teclas.

2-. He hecho un 1.bat y lo he puesto en el mismo directorio y no me lo ejecuta [buuuaaaa] ... algo tendré mal.

El .ahk (y por tanto el .exe resultante) contiene sólo esto:

^!1::
Run, "1.bat",, Hide
return


El .bat tiene el típico "Hola Mundo", si le hago doble click se lanza perfectamente, pero con la combinación no

@echo off
echo.
echo.
echo. Hola Mundo
echo.
echo.
pause



Si embargo sé que la combinación de teclas la "lee", porque si le borro el "1.bat", o le cambi oel nombre, me da un error diciendo que no lo encuentra

Imagen


EDITO de nuevo: Aquí los 2 scripts de prueba, probé también quitando las comillas (ya que el 1.bat está en el mismo directorio que el Prueba.exe hecho con "AutoHotkey" y no requiere "ruta").

Imagen

Voy a leer un poco a ver si me entero.



EDITO 2:

Vale, sí que funcionaba, pero al tenerlo de "Hide", simplemente no me mostraba la ventana de MS-DOS con la "ejecución"... soy tonto...

A ver si consigo un save de un juego multidisco en el cambio de disco y empiezo a probar.
@SGAN el hide es para ocultar la ventana de símbolo de sistema que se abre al ejecutar el bat.

Si quieres que te aparezca un mensaje antes de ejecutar el bat, tienes múltiples maneras de hacerlo, sólo busca en google en inglés y encontrarás varios ejemplos.

^!1::
   msgbox, Hola mundo
return


o

^!1::

SplashTextOn ,250 ,70 , Splash, Montando imagen
Sleep 1000
Run, "1.bat",, Hide
SplashTextOff


return


Saludos
killogy escribió:@SGAN el hide es para ocultar la ventana de símbolo de sistema que se abre al ejecutar el bat.

Si quieres que te aparezca un mensaje antes de ejecutar el bat, tienes múltiples maneras de hacerlo, sólo busca en google en inglés y encontrarás varios ejemplos.

^!1::
   msgbox, Hola mundo
return


o

^!1::

SplashTextOn ,250 ,70 , Splash, Montando imagen
Sleep 1000
Run, "1.bat",, Hide
SplashTextOff


return


Saludos




Ya ya, ya me he dado cuenta, por eso digo que soy tonto xDDDD :D

De todas formas, una mierda para mí, no puedo hacer lo que quería, "en teoría" todo funcionaría perfectamente, el montaje de la imagen, el cambio de disco, cargar el emulador desde el script, etc...

El emulador tiene opción para, mediante línea de comandos cargar la ISO, bien, hasta ahi bien, bueno, bien del todo no, porque he probado a crear la imagen con el propio WinCDEmu, y nada no la reconoce como un disco de PSX, he probado con UltraISO, y tampoco, hasta he buscado una versión del vetusto CloneCD que en su época se usaba para estas cosas, pero más de lo mismo, no reconoce la imagen hecha con él... Me he tenido que descargar de "por ahí" una versión parcheada del juego, y esa sí la reconoce.


Luego viene el segundo problema:

Cargando la ISO directamente en el emulador, pues no puedo hacer lo que quería, ya que tengo que hacer el cambio de CD dentro del emulador, en su GUI (usando la opción "Ejecutar ISO" de su menú se carga la iso directamente, sin "necesidad" de montarla con Daemon Tools, WinCDEmu o similar), si eso lo gestiona el emulador, no puedo "scriptar" el cambio de disco (no hay opciones en línea de comandos para ello en el emulador, o yo no la encuentro y he buscado mucho). Además, si cargo la imagen ISO del juego directamente desde línea de comandos o desde un script, el emulador arranca directamente el juego (bien), pero arranca en modo "no-gui" (sin la interface del emulador); con juegos de un sólo disco, esto da exactamente igual, de hecho, es perfecto, pero con juegos multidisco, NECESITAS la GUI del emulador para hacer el cambio de ISO desde su menú con la opción "Swap disc" de incluye.

Si uso la opción "Ejecutar CD" del menú de la GUI del emulador, puedo cargar el Grandia perfectamente desde mi CD 1 original... pero la imagen (la que me descargué parcheada, las mías propias no funcionan de ninguna manera), montada con WinCDEmu no la lee (montada con Deameon Tools tampoco la lee, y montada con UltraISO, directamente no "ve" la unidad virtual), vamos, que no le cuela como disco original de PSX.

Aun por encima, no encuentro comandos para "línea de comandos" del emulador que permitan lanzar la opción "Ejecutar CD", sólo permite "Ejecutar ISO" desde un script o una ventana de MS-DOS.



Al final, encontré una cosa que al parecer a todo el mundo le iba bien:

https://app.box.com/s/b02715f2fe91cdc42fd1

Se trata de "Combinar discos", al parecer, hace años, un tío preparó unos scripts y tal, para "de forma sencilla", combinar discos de PSX en un sólo DVD... a la vez que el juego se "parcheaba", para no pedir el cambio de disco...

Pero nada, las ISO/Imágenes resultantes de los discos combinados, me hacen lo mismo que las imágenes que creo yo directamente desde mi CDs, al emulador no le cuelan como "discos de PSX".



Así que de momento, ni de una manera, ni de otra, ni de otra... no se me ocurre como hacerlo "más o menos invisible", la única opción "funcional" es simplemente lanzar el emulador, y hacer todo desde las opciones de la GUI del propio emulador, a base de clicks....


Vaya chof llevo encima.
@SGAN vamos que necesitas montar la imagen en el emulador DOSBox? y esto no te sirve? https://www.dosbox.com/wiki/IMGMOUNT


imagefile
Location of the image files to mount in DOSBox. The location can be on a mounted drive inside DOSBox, or on your real disk. It is possible to mount multiple (e.g. "~/images/CD1.cue ~/images/CD2.cue [...] ~images/CDn.cue") optical disc images (ISOs or CUE/BIN) as well, if you need CD swapping capabilities specify all images in succession. The CDs can be swapped with CTRL-F4 at any time.

https://www.dosbox.com/wiki/DOSBox_FAQ

Swapping CD images

Q. How do I unmount or change images? I need to swap CD images in the drive.

A. You may assign more than one image file to IMGMOUNT, to swap images use CTRL-F4. You can also unmount images by using the -u switch. See IMGMOUNT for more information.
killogy escribió:@SGAN vamos que necesitas montar la imagen en el emulador DOSBox? y esto no te sirve? https://www.dosbox.com/wiki/IMGMOUNT


imagefile
Location of the image files to mount in DOSBox. The location can be on a mounted drive inside DOSBox, or on your real disk. It is possible to mount multiple (e.g. "~/images/CD1.cue ~/images/CD2.cue [...] ~images/CDn.cue") optical disc images (ISOs or CUE/BIN) as well, if you need CD swapping capabilities specify all images in succession. The CDs can be swapped with CTRL-F4 at any time.

https://www.dosbox.com/wiki/DOSBox_FAQ

Swapping CD images

Q. How do I unmount or change images? I need to swap CD images in the drive.

A. You may assign more than one image file to IMGMOUNT, to swap images use CTRL-F4. You can also unmount images by using the -u switch. See IMGMOUNT for more information.



No @killogy, lo necesitaba en el emulador ePSXe, o en el PCSXR, por el Grandia 1, que el Grandia 2 lo compré en GOG.com (remasterizado), y tengo una versión en CD de PC (baja resolución, y tiene algún bug gráfico en Windows modernos, también tengo la versión de DreamCast, lo compré 3 veces, sí XD ), pero el 1 no salió para PC, y quería "hacérmelo" para dejarlo como un juego de PC más o menos normal. (lo tengo para PSX/PSOne). Hice lo mismo con el Street Fighter Alpha 3 (claro está, que da menos por saco, ya que es un juego monodisco), ese lo tengo para PSX (tampoco salió para PC), el Street Fighter Alpha 2 lo tengo en la cuenta de GOG.

De todas formas, te agradezco la info, seguramente me vendrá bien más adelante con algún juego que necesite el DOSBox.


Sobre lo de hacerme mis propias ISOs de juegos para PSX, ya soy capaz de hacerlas y que funcionen, necesito el CloneCD, y marcar un par de opciones en la lectura previo a la creación de las imágenes.

*Leer subchanel datos
*Leer subchanel audio

Ya puedo borrar las "parcheadas" que me descargué, ya que puedo hacerme mis propias imagenes "limpias" sin parches, ni modificaciones ni leches.

Ojala los emuladores de PSX tuviera una opción parecida a la del DOSBox integrada... pero... si la hay, yo no la encuentro.
@SGAN entonces no te puedo ayudar mucho más, únicamente quizás algún plugin para ePSXe como Mooby2's CDR plugin http://ngemu.com/threads/starting-an-is ... ine.65671/ , utilizando el comando -nogui se montará la iso sin que se inicie la GUI de ePSXe. http://ngemu.com/threads/how-to-use-com ... bin.13815/. Otra cosa que te funcione sin problemas cuando se trata de cambiar por el siguiente iso que se te pida durante el juego.

http://ngemu.com/threads/launch-epsxe-w ... le.137744/

Pensé que montando la siguiente imagen, lo haría donde ya está la primera desmontándola previamente, pero no sé, desconozco el uso de ese programa.
killogy escribió:@SGAN entonces no te puedo ayudar mucho más, únicamente quizás algún plugin para ePSXe como Mooby2's CDR plugin http://ngemu.com/threads/starting-an-is ... ine.65671/ , utilizando el comando -nogui se montará la iso sin que se inicie la GUI de ePSXe. http://ngemu.com/threads/how-to-use-com ... bin.13815/. Otra cosa que te funcione sin problemas cuando se trata de cambiar por el siguiente iso que se te pida durante el juego.

http://ngemu.com/threads/launch-epsxe-w ... le.137744/

Pensé que montando la siguiente imagen, lo haría donde ya está la primera desmontándola previamente, pero no sé, desconozco el uso de ese programa.



Tengo ese plugin, y otros 4 de CDROM, de momento, no he conseguido lo que quiero, con ninguno... probaré más con ellos a ver, con los juegos multidisco, el problema está precisamente en que al cargar el emu, para que el juego arranque directamente, la GUI no se puede cargar (si se carga la GUI, no arranca el juego directamente y hay que "cargarlo a mano"), hay que usar la opcion -nogui ... pero al mismo tiempo, sin la GUI, no se puede hacer el "cambio de disco".......... ya veremos ;)

Pero bueno, a ver qué leches hago, igual se me ilumina una bombilla hoy u otro día xDDD :D ... o igual me como un "mieder" como un castillo xDDD :D

De todas formas, muchas gracias por tu ayuda ;)
Ejecuta una macro de ratón. No se si el autohotkey llevaba opciones para eso.

Simplemente suele ser poner a grabar la macro en el programa de turno, hacer los clicks por los menú del emulador cambiando el disco y asignarle una combinación de teclas. Luego te lo reproducirá.
9 respuestas