Problemilla con “Ejecutar comando del sistema”

A ver si me podéis ayudar con este problemilla:

La función “Ejecutar comando del sistema” con un explorer.exe me la ejecuta Velneo sin problema, la cosa viene cuando le paso parámetros y no hace lo debido.

Si ejecuto en Windows:

explorer.exe /e,/root, X:\3 - FORMATOS SISTEMA CALIDAD

Me abre correctamente esa localización como raíz para no poder ir arriba, cuando la ejecuto con Velneo me abre el explorador pero en Mis documentos, como raíz sí, pero en una ruta que se le parece bien poco a la establecida.

Como es una ruta con espacios he probado el truco de las \c que se usa al lanzar una aplicación pero nada.

Si la sentencia la ejecuta bien Windows ¿por qué cuando Velneo le pasa los parámetros no lo hace bien?

He probado a meter la sentencia entera en una variable, solo la parte de la ruta, y nada. ¿Alguna idea? Seguro que es la tontería más grande del multiverso pero no doy con ella.

Hola alozano.

Velneo usa el caracter \ para las secuencias de Escape. Si quieres usar un separador de carpeta de windows pon \ en el editor de fórmulas.

explorer.exe /e,/root, X:\3 – FORMATOS SISTEMA CALIDAD

Pruébalo
Saludos
Paco Setué

Al final la tontería más grande como me temía, cambiar las \ por \ o / es algo que todos hemos tenido que hacer pero pensé que en este caso pasaría como literal el contenido de “Fórmula de comando” al SO, pero parece ser que no.

En fin, una cosa menos, gracias Paco.

Buenas tardes estoy ejecutando un archivo php para obtener la cadena original del un xml,
y estoy usando “ejecutar comando del sistema()” con el comando para ejecutar el archivo php
y quiero saber como puedo ocultar la ventana cmd, se muestra la ventana cmd y se oculta de
inmediato, pero quisiera que no se viera la ventana negra, este el mi código , espero alguien pueda ayudarme

image

Hola greciamendezgil10070034.

Para Windows 7 y 8 te propongo lo siguiente:

  • Crea una Función FUN_EJECUTAR_VBS que ejecuta un Script VBS (el motor VBS está disponible por defecto en Windows)

Rem ( Función FUN_EJECUTAR_VBS. Parámetro CODIGO con el código VBS )
Rem ( Crea un fichero vbs temporal y lo ejecuta )
Set ( FICHERO_VBS, sysCacheClientPath + "/ejecutar.vbs" )
Fichero: Abrir ( oFichero, FICHERO_VBS, Lectura/escritura (Crea o limpia), LOK, UTF-8 )
   // Mensaje ( "Ejecuta: " + CODIGO, Información, , )
   Fichero: Grabar línea ( oFichero, CODIGO, LOK )
   If ( LOK )
      Ejecutar documento ( FICHERO_VBS, LOK )
      Libre

  • Desde un Manejador de Evento construyes el código de Script VBS y lo ejecutas

Rem ( Comando a ejecutar desde MSDOS )
Set ( CCOMANDO_MSDOS, "php -f " + ..... )
Rem ( El objeto WshShell permite ejecutar aplicaciones Windows )
Set ( CCABECERA_VBS, "set WshShell = CreateObject(\cWScript.Shell\c) \n" )
Rem ( Ejecuta un comando MSDOS sin mostrar la ventana. Las comillas en VBS se introducen como CHR(34) )
Set ( CCODIGO_VBS, CCABECERA_VBS + "WshShell.Run \ccmd /c \c + \c" + replaceString(CCOMANDO_MSDOS, "\c", "\c + CHR(34) + \c") + "\c, vbhide, True" )
Set ( LOK, fun:FUN_EJECUTAR_VBS@0PS_Ejercicios_app.app(CCODIGO_VBS) )

Saludos
Paco Satué

Muchas gracias Paco Satué me funciono perfectamente, ya había probado de varias formas sin conseguirlo

Hola “seh” estoy intentando utilizar el código que describes anteriormente pero no consigo que funcione, es decir, si funciona pero en vez de ejecutar lo deseado abre el bloc de notas y muestra el contenido del fichero.

Adjunto imagen.

Llevo varios días peleando pero no lo consigo. Gracías.

image

Hola GSI.

Creo que el problema es del sistema operativo no de Velneo.
Seguramente tienes asignada la extensión VBS al Bloc de Notas en lugar de al Windows Script Host WSH.

Ejecuta la opción “Abrir con …” del menu contextual sobre el fichero .vbs y selecciona “Elegir otra aplicación”. En el cuadro de diálogo selecciona la Aplicación “Microsoft Windows Based Script Host” y marca el checkbox “Usar siempre esta aplicación para …”.

Ver adjuntos.

Pruébalo
Saludos
Paco Satué

image

image

He comprobado y esta ok, el problema debe estar en Velneo, pues he creado el siguiente script (adjunto imagen) basandome en el que nos has proporcionado y, funciona ok en windows pero en v7 da un mensaje que adjunto imagen ???

image

He probado a ejecutar el script como “ejecutar documento”, “Lanzar Aplicacion” y “ejecutar comando del sistema”, incluso he probado a ejecutar desde el script un fichero bat que ejecute el vbs, pero siempre ocurre igual

GSI, osk.exe nos abre el teclado en pantalla, ¿es eso lo que quieres hacer?, ¿abrir el teclado en pantalla?

Hola GSI.

Parece entonces un problema de la llamada a la aplicación de “Teclado en Pantalla de Windows” osk.exe.

Será alguno de los siguientes problemas: la función del API shellexecute que usa Velneo, las llamadas a librerías de 64bits desde Velneo que es de 32bits, el sistema UAC de Windows que controla el acceso a la carpeta system32 donde reside osk.exe.

Lo mejor es que lo plantees a Soporte.

Saludos
Paco Satué

Si Carlistos lo que deseo es abrir el teclado en pantalla para utilizarlo con el software que tenemos en tablets

sí, tal como dice seh, habría que consultarlo con soporte

Hola a todos, nosotros al igual que GSI tenemos un desarrollo en tablets y también nos ha pasado lo mismo a la hora de invocar al teclado en pantalla de windows muestra el mismo error.
Buscando encontramos una página donde hay multitud de teclados que creo que podían incluirse en nuestros programas, lo único es que no tenemos ni idea de Java ni de JavaScript para poder adaptados, con lo que ponémos la referencia a la página por si alguien nos “ilumina”.

http://keith-wood.name/keypad.html

Un saludo.
Paco.

Al no encontrar ninguna solución en soporte, he optado por usar algo externo:

http://www.freevirtualkeyboard.com/tecladovirtual.html

este teclado si funciona perfectamente llamándolo desde “Lanzar Aplicación…”

Hola GSI, me parece una muy buena solución.

Un saludo.
Paco.