system("c:\Archivos de programa\Windows NT\Accesorios\wordpad.exe");
Y no hace nada... por qué?
Leí de probar con barras dobles \\ y tampoco...
Tampoco funciona exec, ni shell_exec...

Gracias.
| |||
Bueno .. es que no entendistes el funcionamiento de la función system() o similares de PHP .. Con esas funciones NO vas abrir tu aplicación para que puedas interactuar con ella. Ese tipo de funciones (system() .. etc) se usan para ejecutar procesos tipo "segundo plano" .. procesos tipo: al ejecutar tal.exe .. genera un archivo por otro lado .. o similar. NADA de aplicaciones que tengan que interactuar con el usuario (como las que mencionas). Si quieres interactuar con aplicaciones windows en un ambiente windows (con PHP corriendo en windows: no funciona en "LINUX"). Tendrás que usar COM: www.php.net/com Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
Gracias, lo quiero para que mande imprimir una plantilla .rtf con datos de la BBDD en una imprsora en red, asique interaccion 0, ya le paso yo los parametros. El problema eran las rutas del wordpad que tienen que ir con barras dobles \\ y ademas al tener espacios en blanco tenia que mostrar tambien las comillas dobles para que al enviar la ruta al cmd encontrara el programa y me faltaba poner los caracteres de escape. Ya funciona. Gracias. |
| ||||
Cita: Claro:
Iniciado por Felipe Torres Hola djfran28: Podrias poner como quedo al final la sintaxis que tienes para tal caso? Gracias
Código:
$programa = "\"C:\\Archivos de programa\\Windows NT\\Accesorios\\wordpad.exe\""; $op1 = " /pt"; $impresora1 = " \\\USIHPC1\\HPOffice"; $fichero = " C:\\AppServ\\www\\Incidencias2\\temporal.rtf"; $instruccion = $programa.$op1.$fichero.$impresora1; exec($instruccion); Última edición por djfran28; 10/05/2006 a las 02:51 |
| |||
Cita: Que funcionen dichas funciones no depende del S.O. del servidor (las funciones de PHP propiamente dichas). Sino de que PHP no use por ejemplo "safe mode" (modo seguro) lo cual limita ese tipo de funciones a ejecutar.
Iniciado por djfran28 Puede ser que la funcion exec(), system(), etc. no funcionen en windows 2000? Al ejecutar esas funciones y tu decir "no me funcionan" algún mensaje de error debes observar y si no te es mostrado hay que forzar verlo. Por ejemplo, las funciones exec() system() y equivalentes tienen parámetros para tomar el posible mensaje de error que dé al ejecutarse y/o salida de lo que la ejecución de tu comando origine (para que veas mensajes de error própios del S.O. y de la ejecución de cierto comando). Usalos. Revisalo en tu configuración de PHP: http://www.php.net/features.safe-mode Por otro lado .. en un entorno tipo Windows 2000, 2003, XP pro .. tienes que tener presente el tema de los permisos de ejecución y acceso a archivos .. PHP usa cierto usuario (no sé como instalstes PHP en tu servidor ni bajo que servidro HTTP .. pero eso condiciona al usuario que va a usar PHP cara a ejecutar cualquier comando o acceder al sistema de archivos del servidor). Realmente no sé si vistes el uso de COM .. pero ya que trabajas en entorno windows (servidores al menos) deberías evaluar esa opción. (por qué está diseñada para no tener problemas con el tema de "permisos" de usuarios .. ni de que PHP pueda o no usar exec() (modo seguro activado o no ...), etc. Como observación .. estás desarrollando una aplicación (el tema de la impresión) que realmente te está condicionando mucho la forma de trabajo y servidores: tienen que ser windows, bajo una "LAN" .. en fin .. es sólo una opinión. Pero realmente PHP no se diseño para trabajar como pretendes (aunque lo hagas) .. el día que "migres" o tengas por fuerza correr tu aplicación en otros S.O. tendrás problemas. Ojo con eso .. Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
Miraré eso de los COM. Yo lo tenia bajo local en un windows xp pro y despues instale un pack con php, mysql, apache y todo listo xa ejecutar que no pone safe mode creo. Todo va bien pero cuando manda a imprimir se queda la pagina con la barra de cargando y no hace nada, miraré de capturar el error o lo que sea. Lo que me mosquea es que si ejecuto el comando tal cual (hago un echo del comando completo tras componerlo, $instruccion) en la consola de windows o en Ejecutar si funciona, pero en el PHP no. Comprobare lo de los permisos pero me extraña. Ya se que no es lo mejor para php, pero es loq me han pedido hacer, una web y en un momento q el usuario rellena un formulario se inserta en la BBDD y se imprime una hoja rellenada cn esos datos... no es migrable ni nada pero bueno, es loq kieren y como lo quieren. Gracias. |