Comunidad de diseño web y desarrollo en internet online

PHP - Funciones System() & Exec()

Citar            
MensajeEscrito el 04 Abr 2007 07:15 am
Como ya sabreis ambas funciones permiten enviar comandos shell, en mi caso conectar al MS-DOS de windows.

Mi problema surge cuando necesito navegar en diferentes directorios para ejecutar un archivo.exe. Ejemplo:

exec("cd c:\archivos de programa\blabla");

Supuestamente ahi estaria en el directorio "c:\archivos de programa\blabla\"

Y quisiera ejecutar un archivo.exe dentro de esa carpeta.. como hago??

Lo ideal seria ejecutarlo todo en una misma linea, ejemplo:

exec("cd c:\archivos de programa\blabla\archivo.exe");

Pero asi no funciona. Cuando se trabaja en DOS directamente, es mas facil.. primeros nos dirijimos al directorio y luego llamamos al .exe pero desde funciones externas como las de php, nose como hacer para ejecutar varias lineas.. ya que cada vez que se llama a la funcion exec() o system(), empieza de 0.

Alguna guia, plz??

Gracias a todos.

Pd: Mi objetivo es poder abrir un archivo.exe para que aparesca en el listado de procesos activos. (tasklist)

Por Claudi

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Abr 2007 08:29 am
Prueba con:

Código :

exec("%programfiles%\blabla\archivo.exe");


Si no funcion puedes incluir la ruta de la carpeta en el PATH o poner el ejecutale en alguna carpeta encluida en el PATH como puede ser C:\Windows\system32 y ejecutar

Código :

exec("archivo.exe");

Por Mania

Claber

1716 de clabLevel

3 tutoriales
2 articulos

 

Astrub

msie
Citar            
MensajeEscrito el 04 Abr 2007 08:40 am
Gracias Mania por responder.

La primer opcion que comentas, no me funciona y la segunda ya lo habia pasando antes, pero lo que pasa que dicho .exe necesita localizar a sus otros archivos de desarrollo en su mismo directorio y no puedo pasar tooooodos los archivos de cada programa al directorio principal.

Es decir: Supongamos que tiene 3 Programas distintos, situados dentro de "archivos de programa" etc.. y se necesita llamar a cada .exe, pero si metes dicho .exe en el directorio principal "c:\" pues da error porque no encuentra sus otros archivos.

Posible solución?? Pues llamar a un "acceso directo", entonces se pondria todos los accesos directos en el directorio principal y ala.. todo perfecto. Pero como se llama a un acceso directo??. Esa es la question :(

Muchas Gracias ;)

Por Claudi

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Abr 2007 11:25 am
Pues la verdad es que no se si se puede llamar a un acceso directo.

¿Porque no pruebas a incluir los directorios donde están los programas en el Path? así serian accesibles desde cualquier lado.

Por Mania

Claber

1716 de clabLevel

3 tutoriales
2 articulos

 

Astrub

msie
Citar            
MensajeEscrito el 04 Abr 2007 02:35 pm
"¿Porque no pruebas a incluir los directorios donde están los programas en el Path? así serian accesibles desde cualquier lado."

Pues porque los .exe necesitan llamar a sus otros archivos de desarrollo en el mismo directorio. Por lo que no podria poner en el directorio principal todos todos todos los archivos de cada juego. es un lio eso y podria probocar errores graves.

Aun asi, averiguando la solucion es utilizar el comando "start" para llamar a archivos en rutas especificas.

Saludos y Gracias :)

Por Claudi

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Abr 2007 03:01 pm
Me alegro de que hayas encontrado la solución, pero creo que no me he sabido expresar.

Para incluir los directorios en el Path no necesitas mover nada, solo ir a donde se modifican las variables de entorno e incluir la ruta del directorio en la variable path. Y los archivos se ejecutarán desde cualquier ubicación como si lo hicieran en su directorio real (que en realidad lo están).

Pero si con "start" se soluciona mejor, mas rapido y sencillo ^^

Por Mania

Claber

1716 de clabLevel

3 tutoriales
2 articulos

 

Astrub

msie
Citar            
MensajeEscrito el 23 Jul 2010 10:09 pm
Estuve viendo como abrir un programa extero desde php, por favor me pueden dar un ejemplo de como hacer, necesito abrir un programa de scaner desde el sistema que esta desarrollado

Muchas gracias de antemano

Por zack

0 de clabLevel



Genero:Masculino  

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.