donde se produce el error?
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: Karcrack en 4 Mayo 2009, 22:06 PMPorque no vas a poder ejecutarlos enteros. Si estas haciendo lo mismo que arias si le pasas un Batch. Mientras no llegues al limite de caracteres no hay problema
De todas formas, no es posible ejecutar *.Bat's completos onthefly ... Al menos no de estas formas...
Saludos
Cita de: MSDN
lpCommandLine [in, out, opcional]
The command line to be executed. The maximum length of this string is 32,768 characters, including the Unicode terminating null character. La línea de comandos a ejecutar. La duración máxima de esta cadena es 32.768 caracteres, incluidos los caracteres Unicode de terminación nula. If lpApplicationName is NULL, the module name portion of lpCommandLine is limited to MAX_PATH characters. LpApplicationName Si es NULL, el nombre del módulo de lpCommandLine se limita a los caracteres MAX_PATH.
The Unicode version of this function, La versión Unicode de esta función, CreateProcessW , can modify the contents of this string. CreateProcessW, puede modificar el contenido de esta cadena. Therefore, this parameter cannot be a pointer to read-only memory (such as a const variable or a literal string). Por lo tanto, este parámetro no puede ser un puntero a la memoria de sólo lectura (como un const variable o una cadena literal). If this parameter is a constant string, the function may cause an access violation. Si este parámetro es una cadena constante, la función puede provocar una violación de acceso.
The lpCommandLine parameter can be NULL. El lpCommandLine parámetro puede ser NULL. In that case, the function uses the string pointed to by lpApplicationName as the command line. En ese caso, la función utiliza la cadena señaló que por lpApplicationName como la línea de comandos.
Cita de: Hacker_Zero en 4 Mayo 2009, 20:39 PMSolo tienes que usar CreateProcess a cmd.exe y añadirle la opción /c para que se cierre al final, no hace falta System.
Ves como fue una pena lo de c++. En vb va a ser más complicado hacer eso
.
Saludos
Cita de: WHK en 4 Mayo 2009, 19:31 PMEs muy facil ejecutar el batch desde memoria, se lo pasas al cmd por argumentos como una cadena terminada en 0. cada linea la distinguira por que lo separa un \n.
Lo único que se me puede ocurrir es pasar el bat a memoria pero ahi no sabría como hacer para que el cmd interprete una cadena completa sin que haya archivo.. sinceramente no se me ocurre como ya que cmd interpreta solamente archivos y no strings como bats dentro de un bat.
System("echo hola\n echo Soy un Batch")
Cita de: Hacker_Zero en 2 Mayo 2009, 14:14 PMNo seria difícil si lo haces al final de una sección. Puedo ayudarte en eso si quieres
Si, ésa es la limitación que tiene y que tendrá hasta la versión 1.0 final ya que tedría que reprogramar gran parte de lo que tengo, habrá que esperar a la 2.0 para añadir espacio libre a los ejecutables o en su defecto para los impacientes, agregarla a mano o con topo.
Saludos