Tools.Shell

09/06/2005 - 11:11 por yego | Informe spam
Hola a todos,
Quiero acceder al Shell para hacer correr una aplicación, pero no lo
consigo, no se en que espacio de nombres se encuentra.

Saludos

Preguntas similare

Leer las respuestas

#1 Víctor
09/06/2005 - 11:41 | Informe spam
Utiliza el método Start de Process (en System.Diagnostics)

Este es un ejemplo de la documentación:

Process.Start("IExplore.exe", @"C:\myPath\myFile.asp")

Víctor.

"yego" escribió en el mensaje
news:
Hola a todos,
Quiero acceder al Shell para hacer correr una aplicación, pero no lo
consigo, no se en que espacio de nombres se encuentra.

Saludos


Respuesta Responder a este mensaje
#2 yego
09/06/2005 - 12:46 | Informe spam
Gracias Victor, es exactamente lo que andaba buscando.

Saludos.

"Víctor" escribió en el mensaje
news:ec%
Utiliza el método Start de Process (en System.Diagnostics)

Este es un ejemplo de la documentación:

Process.Start("IExplore.exe", @"C:\myPath\myFile.asp")

Víctor.

"yego" escribió en el mensaje
news:
> Hola a todos,
> Quiero acceder al Shell para hacer correr una aplicación, pero no lo
> consigo, no se en que espacio de nombres se encuentra.
>
> Saludos
>
>


Respuesta Responder a este mensaje
#3 yego
09/06/2005 - 15:59 | Informe spam
Victor, se me plantea otra duda:
Se le puede indicar de alguna forma que permanezca a la espera hasta que
termine la aplicación iniciada.En el ejemplo que me indicabas, continuar con
la ejecución de mi programa sólo cuando se haya cerrado el explorador.
Saludos.


"Víctor" escribió en el mensaje
news:ec%
Utiliza el método Start de Process (en System.Diagnostics)

Este es un ejemplo de la documentación:

Process.Start("IExplore.exe", @"C:\myPath\myFile.asp")

Víctor.

"yego" escribió en el mensaje
news:
> Hola a todos,
> Quiero acceder al Shell para hacer correr una aplicación, pero no lo
> consigo, no se en que espacio de nombres se encuentra.
>
> Saludos
>
>


Respuesta Responder a este mensaje
#4 Víctor
09/06/2005 - 16:49 | Informe spam
Así en frio, se me ocurre una solución un poco de andar por casa. Seguro que
alguien tendrá una mejor:

Una variable int privada en la clase que ejecuta el Process.Start en la que
almacenar el id de proceso (en el ejemplo idProc). En el método que lanza el
Process.Start haces lo siguiente:
idProc=Process.Start("IExplore.exe").Id;

timer1.Enabled=true;

Como verás utilizo un timer para consultar en cada tick si existe el proceso
con el id que me ha devuelto la instancia de IExplore, y en evento tick del
timer pongo lo siguiente


private void timer1_Tick(object sender, System.EventArgs e)
{

try

{

Process.GetProcessById(idProc);

}

catch(ArgumentException exc)

{

timer1.Enabled=false;

MessageBox.Show("Proceso finalizado");

}

}

De esta forma, cuando se lance la excepción al no encontrar un proceso con
ese id, tú podrás ejecutar el código que quieras. En lugar de hacerlo con
timers puedes hacerlo con threads para lanzarlo en un subproceso.

Víctor.

"yego" escribió en el mensaje
news:%
Victor, se me plantea otra duda:
Se le puede indicar de alguna forma que permanezca a la espera hasta que
termine la aplicación iniciada.En el ejemplo que me indicabas, continuar


con
la ejecución de mi programa sólo cuando se haya cerrado el explorador.
Saludos.


"Víctor" escribió en el mensaje
news:ec%
> Utiliza el método Start de Process (en System.Diagnostics)
>
> Este es un ejemplo de la documentación:
>
> Process.Start("IExplore.exe", @"C:\myPath\myFile.asp")
>
> Víctor.
>
> "yego" escribió en el mensaje
> news:
> > Hola a todos,
> > Quiero acceder al Shell para hacer correr una aplicación, pero no lo
> > consigo, no se en que espacio de nombres se encuentra.
> >
> > Saludos
> >
> >
>
>


Respuesta Responder a este mensaje
#5 yego
09/06/2005 - 17:46 | Informe spam
De momento lo he aparcado, pero tarde o temprano lo retomaré y te cuento.

Con la pista que me has dado, he podido ver 'Process', es muy extenso,
atacaré por ahí.

Saludos.



"Víctor" escribió en el mensaje
news:
Así en frio, se me ocurre una solución un poco de andar por casa. Seguro


que
alguien tendrá una mejor:

Una variable int privada en la clase que ejecuta el Process.Start en la


que
almacenar el id de proceso (en el ejemplo idProc). En el método que lanza


el
Process.Start haces lo siguiente:
idProc=Process.Start("IExplore.exe").Id;

timer1.Enabled=true;

Como verás utilizo un timer para consultar en cada tick si existe el


proceso
con el id que me ha devuelto la instancia de IExplore, y en evento tick


del
timer pongo lo siguiente


private void timer1_Tick(object sender, System.EventArgs e)
{

try

{

Process.GetProcessById(idProc);

}

catch(ArgumentException exc)

{

timer1.Enabled=false;

MessageBox.Show("Proceso finalizado");

}

}

De esta forma, cuando se lance la excepción al no encontrar un proceso con
ese id, tú podrás ejecutar el código que quieras. En lugar de hacerlo con
timers puedes hacerlo con threads para lanzarlo en un subproceso.

Víctor.

"yego" escribió en el mensaje
news:%
> Victor, se me plantea otra duda:
> Se le puede indicar de alguna forma que permanezca a la espera hasta que
> termine la aplicación iniciada.En el ejemplo que me indicabas, continuar
con
> la ejecución de mi programa sólo cuando se haya cerrado el explorador.
> Saludos.
>
>
> "Víctor" escribió en el mensaje
> news:ec%
> > Utiliza el método Start de Process (en System.Diagnostics)
> >
> > Este es un ejemplo de la documentación:
> >
> > Process.Start("IExplore.exe", @"C:\myPath\myFile.asp")
> >
> > Víctor.
> >
> > "yego" escribió en el mensaje
> > news:
> > > Hola a todos,
> > > Quiero acceder al Shell para hacer correr una aplicación, pero no lo
> > > consigo, no se en que espacio de nombres se encuentra.
> > >
> > > Saludos
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida