Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: victorio95 en 25 Octubre 2019, 14:57 pm



Título: problema con system(") en C++
Publicado por: victorio95 en 25 Octubre 2019, 14:57 pm
Bueno, primer post. Sed amables jajaja.

Al lío,
estoy haciendo un programa en C++ el cual llama a un programa externo mediante la función system(ruta). Pero dicho programa tiene  una especie de "switch". Ésto hace que no pueda completarse la llamada y se queda en espera hasta que, en este caso, le de al 1.

el programa al que llamo es 2jpeg.exe:


system("2jpeg -src rutaInput -dst rutaOutput -jpeg mode:quality:100");

al ejecutar esto en el cmd es cuando me sale el "switch":

Before you start converting process,
please note that free version of 2Jpeg
adds one demo label to the output file


1- Continue, 2- Order FULL version, 3- Exit

entonces... ¿Es posible decirle desde C++ pasarle el 1 para que continúe con el proceso?

Gracias de antemano


Título: Re: problema con system(") en C++
Publicado por: Serapis en 25 Octubre 2019, 20:27 pm
Olvida un programa que te muestra publicidad en las imágenes...

"Guglea" algún ejemplo que utilice la api de GDI+ : GdipSaveImageToFile
te permite guardar en jpg definiendo el nivel de calidad y también en png o tiff...


Título: Re: problema con system(") en C++
Publicado por: ThunderCls en 28 Octubre 2019, 18:50 pm
Opino igual que NEBIRE, no es necesario usar software de terceros para hacer lo que deseas. De igual manera y habiendo dicho lo anterior, si de todas formas deseas seguir usando 2jpeg te puedo dar un par de ideas:

1- Solucion tanto facil como cutre  :-\
    Utiliza la redireccion de entrada de consola de windows con un fichero. Te creas un fichero con la respuesta que espera 2jpeg (en este caso 1) y luego modificas tu linea de comandos para que tome la
    entrada desde ese fichero algo como:
   
Código
  1. system("2jpeg -src rutaInput -dst rutaOutput -jpeg mode:quality:100 < fichero.txt");

2- Solucion preferible  ;-)
    Usa CreateProcess/Pipes para poder redireccionar la entrada y/o salida de un child process
    https://docs.microsoft.com/en-us/windows/win32/procthread/creating-a-child-process-with-redirected-input-and-output

Suerte!