elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Process.Start ejecuta un batch y hace que sus rutas contiguas sean innacesibles?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Process.Start ejecuta un batch y hace que sus rutas contiguas sean innacesibles?  (Leído 3,895 veces)
z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Process.Start ejecuta un batch y hace que sus rutas contiguas sean innacesibles?
« en: 22 Febrero 2017, 11:02 am »

Hola buenas,

ya que esto involucra dos cosas (ya se que es .NET) y tampoco es que me urja mucho la respuesta, ya que bueno, la solución es clara y sencilla, os comento esto...

Al parecer, si llamas un batch el cual por ejemplo, tiene un .exe a su lado (de nombre, digamos prueba.exe), y de contenido es:

Código
  1. @echo off
  2. prueba

Lo tienes que llamar si o si, desde una carpeta con una ruta distinta o incluso desde otro disco...

Cuando lo haces, mirad lo que ocurre:

https://gyazo.com/8518a43bfeb74c88b06c5a48a1628bee

Parad el video e id jugando con los frames, y veréis esto:



Curioso no? Como veis hice un echo también al path de windows porque no sabia muy bien donde residia el error en un principio, hasta que acabe solucionandolo por la via mas tonta, que fue declarando la ruta completa del programa de MSBuild... :P

Podéis resolverme la duda, haciendo vosotros lo mismo? A ver, si es cosa general o de algo especifico de Unity...

Por si os sirve, la versión es la .NET 3.5

Un saludo.


« Última modificación: 22 Febrero 2017, 12:49 pm por Ikillnukes » En línea


Interesados hablad por Discord.
Eleкtro
Ex-Staff
*
Conectado Conectado

Mensajes: 9.788



Ver Perfil
Re: Process.Start ejecuta un batch y hace que sus rutas contiguas sean innacesibles?
« Respuesta #1 en: 22 Febrero 2017, 11:57 am »

ya que esto involucra dos cosas (ya se que es .NET)

Aclaración por la que te muevo el post:

  Se está llamando al método Start de la clase Process del espacio de nombres System.Diagnostics de la librería de classes de .NET Framework. Estar usando la IDE de Unity o llamando a un archivo.bat no cambia estos atributos principales.



Al parecer, si llamas un batch el cual por ejemplo, tiene un .exe a su lado (de nombre, digamos prueba.exe), y de contenido es:

Código
  1. @echo off
  2. prueba

Lo tienes que llamar si o si, desde una carpeta con una ruta distinta o incluso desde otro disco...

Cuando lo haces, mirad lo que ocurre:

¿Puedes intentar explicar el problema que sufres al llamar al método Process.Start() sin obligarnos a detenernos en cada frame del gif?, ¿y que es exactamente lo que dices que se soluciona y como dices que se soluciona?, ¿o que tal si muestras el comando de Batch que usas para compilar el archivo de solución de VS y que está generando esos errores de que no encuentra el compilador de MSBuild.exe?, por que yo no me he enterado de nada, y estoy ya algo fastidiado de tener que preguntarte por "el problema real", bueno, o por la ausencia de detalles xD, ¡el caso es que me das ganas de quejarme por que no aportas los suficientes datos para ayudarte! :¬¬.

De todas formas por las cosas que estás mencionando, sería posible que simplemente estés sufriendo un conflicto de directorios de trabajo, donde el archivo.bat o el ensamblado .NET "prueba.exe" o la aplicación que actualmente estás compilando para llamar a ese archivo.bat dependan de un directorio de trabajo actual en especifico (cosa que tú y solo tú deberías saber de cual se trata, dependiendo de que cosas hagas en tu código, ¡yo no lo sé!).Recuerda que en la propiedad Process.StartInfo.WorkingDirectory puedes asignar el directorio de trabajo actual para iniciar el proceso/archivo.bat, en el cual deberías especificar (por generalizar) el mismo directorio en el que se encuentra tu archivo.bat, y ese directorio especificado en tu objeto Process será el directorio de trabajo que se le asignará a la instancia de la CMD que ejecute tu archivo.bat.

Ejemplo:
Código
  1. Using p As New Process
  2.    p.StartInfo.FileName = "CMD.exe"
  3.    p.StartInfo.Arguments = "/C ""Echo %CD% & PAUSE"" "
  4.    p.StartInfo.WorkingDirectory = "C:\"
  5.    p.StartInfo.UseShellExecute = True
  6.    p.Start()
  7.    p.WaitForExit(Timeout.Infinite)
  8. End Using

¡Saludos!


« Última modificación: 22 Febrero 2017, 12:09 pm por Eleкtro » En línea

z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Process.Start ejecuta un batch y hace que sus rutas contiguas sean innacesibles?
« Respuesta #2 en: 22 Febrero 2017, 12:06 pm »

Pues para dar palos de ciego los das muy bien :xD

Dame uno en la cabeza :laugh: :laugh:

Process.StartInfo.WorkingDirectory es precisamente lo que necesitaba en este caso...

A ver, la cosa estaba en que yo compilo mi API desde un batch usando MSBuild (el exe y las dlls) y restan en una carpeta...

Y donde se llama, está en otra carpeta obviamente el error es evidente, no encontraba el MSBuild, por el tema del workingdirectory, investigaré más sobre el tema.

El frame del video que digo, lo he subido como imagen... Elektro, no lo has mirado verdad? :laugh: :laugh:

Un saludo. :xD



A ver, voy a ser mejor persona...

El archivo prueba.exe es un ejecutable cualquiera, en este caso real era MSBuild:





Lo que está subrayado:

Citar
"%MAIN_PATH%\Compile\MSBuild.exe"

Antes era solo:

Citar
MSBuild

Esto yo lo llamaba desde aquí:

https://github.com/Lerp2Dev/Lerp2API/blob/c4562481509f874a019d9ea8700abde8069241c3/Project/Editor/LerpedEditorCore.cs#L170

El cual está compilado aquí:



El resto ya lo sabes, básicamente, al ejecutarse, me daba el problema este:

https://gyazo.com/8518a43bfeb74c88b06c5a48a1628bee

Parad el video e id jugando con los frames, y veréis esto:



Obviamente, el error es simple, tampoco me urgía saber una solución exacta, pero de verdad que se agradece el tiempo que t has tomado para descifrar lo que necesitaba realmente.
« Última modificación: 22 Febrero 2017, 12:18 pm por Ikillnukes » En línea


Interesados hablad por Discord.
Eleкtro
Ex-Staff
*
Conectado Conectado

Mensajes: 9.788



Ver Perfil
Re: Process.Start ejecuta un batch y hace que sus rutas contiguas sean innacesibles?
« Respuesta #3 en: 22 Febrero 2017, 12:18 pm »

El frame del video que digo, lo he subido como imagen... Elektro, no lo has mirado verdad? :laugh: :laugh:

La otra parte importante y de mayor utilidad era el código de la IDE que estaba en el gif, para saber como estabas ejecutando ese script, comprobar las propiedades que tenias o no asignadas en el process y como lo estabas haciendo todo en general... así que tuve que ver el gif y me lo he tragado unas cuantas veces deteniéndome manualmente en el frame correcto y eso me ha costado un poco... tanto como para tener argumentos para criticarte por eso  :¬¬

Me alegro de que te haya servido mi intuición con esa propiedad, WorKingDirectory.

EDITO: Si, ahora me das los detalles cuando ya te lo has/he solucionado. ¡buena persona! XD kawen tustampa.

¡Saludos!
« Última modificación: 22 Febrero 2017, 12:22 pm por Eleкtro » En línea

z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Process.Start ejecuta un batch y hace que sus rutas contiguas sean innacesibles?
« Respuesta #4 en: 22 Febrero 2017, 12:20 pm »

La otra parte importante y de mayor utilidad era el código de la IDE que estaba en el gif, para saber como estabas ejecutando ese script, comprobar las propiedades que tenias asignadas en el objeto process y como lo estabas haciendo en general... así que tuve que ver el gif y me lo he tragado unas cuantas veces deteniéndome manualmente en el frame correcto y eso me ha costado un poco... tanto como para tener argumentos para criticarte por eso  :¬¬

Me alegro de que te haya servido mi intuición con esa propiedad, WorKingDirectory.

Jajajaja la relación amor-odio va bien al parecer :xD era broma, perdona si te ha molestado, por ver si colaba :laugh: :laugh: no te mosquees xd soy un puto

Gracias nuevamente por tu tiempo Elektro, he modificado la primera respuesta para que vieses exactamente lo que ocurre...

Dime si ahora se ve más claro, ya no por ti (lógicamente) si no para el que revise esta pregunta en un futuro...

Un saludo.
En línea


Interesados hablad por Discord.
Eleкtro
Ex-Staff
*
Conectado Conectado

Mensajes: 9.788



Ver Perfil
Re: Process.Start ejecuta un batch y hace que sus rutas contiguas sean innacesibles?
« Respuesta #5 en: 22 Febrero 2017, 12:25 pm »

Dime si ahora se ve más claro, ya no por ti (lógicamente) si no para el que revise esta pregunta en un futuro...

No me molesta hombre, es que soy "tiquismiquis" por naturaleza, pero las cosas que digo lo hago con una sonrisa en la cara (de esas del tipo "te mataría si te tuviera delante").

Y si, ahora se ve perfecto, nada que objetar. Seria más perfecto si la próxima vez que te ayudo a solucionar algo de C# / .NET me das una propinilla, pero bueno, eso ya lo vamos viendo en el futuro si te parece.

Saludos!
En línea

z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Process.Start ejecuta un batch y hace que sus rutas contiguas sean innacesibles?
« Respuesta #6 en: 22 Febrero 2017, 12:30 pm »

Me le vas a tener que dar tu a mi, hacer un ARK en una tarde no es barato, ni gratis mucho menos :silbar:

Bueno, a lo mejor hay una descarga por ahí, o no? :xD Yo no entender, pero a lo mejor se puede alojar un servidor crack, te recuerdo que tengo por ahí un servidor con XenServer q podemos alojar tantos juegos crackeados como quieras :xD :xD

Un saludo.
En línea


Interesados hablad por Discord.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines