Ejecutar aplicación en Mac

  1. 6 weeks ago

    Tengo varias aplicaciones en una servidor de windows, donde los usuarios por medio de una aplicación tipo menú ingresan a las diferentes aplicaciones, en Windows y linux funciona, pero con Mac no se ejecuta.

    Cuando las mac se inician se monta automáticamente un volumen, donde están las aplicaciones, una aplicación tipo menú tiene un ribbon con diferentes botones para cada aplicación y cuando se presionan los botones hace un Launch, pero para Mac no funciona ni da error.

    Este es el código:

    #if TargetMacOS then
    ' para obtener el path ejecuto un GetOpenFolderItem y copio el path
    f=GetFolderItem("/Volumes/apps/Modulos/invetario/Builds - invetario.xojo_binary_project/Mac OS X (Cocoa Intel)/invetario.app")

    if f.Exists then
    f.Launch
    end if

    #endif

    Esta aplicación tipo menú es un lanzador y esta hecho en la versión 2014 r2, no puedo actualizarlo porque tiene unos componentes de terceros que en versiones superiores de xojo no corren.

    Para probar si era la versión, hice aplicación con un formulario en xojo 2015 r2.4 donde llamo la aplicación de la misma manera pero no se ejecuta, ni lanza ningún error.

    Probé utilizando GetTrueFolderItem tampoco funciona

    Dim f, g as FolderItem
    f=GetTrueFolderItem(TxtPath.Text) ' contiene la ruta de la aplicación obtenida mediante GetFolderItem

    If f<> Nil Then
    f.Launch
    Else
    ' Nunca pasa por aquí
    MsgBox "No se encontró el archivo."
    End If

    Cuando interactivo con GetOpenFolderItem, funciona sin problemas

    f = GetOpenFolderItem("app")
    f.Launch

    Desde MAC XSO 10.10.5 y superiores, como puedo lanzar una aplicación en el ambiente descrito anteriormente

    Saludos.
    Mauricio

    Hola @Mauricio P

    Prueba a añadir el tipo de ruta en el constructor del FolderItem. Por ejemplo:

    dim f as new FolderItem("/Applications/Xojo 2016 Release 4.1/xojo.app", FolderItem.PathTypeNative)
    f.Launch

    Javier Rodríguez
    Evangelista Xojo en Español, Desarrollador, Consultor y Formador Xojo
    Autor del libro "Programación Multiplataforma Xojo "
    Autor del plug-in GuancheMOS para Xojo
    Snippery para OS X : editor y gestor de fragmentos… ¡y más!

  2. Javier M

    Feb 15 Pre-Release Testers, Xojo Pro Answer Madrid, Spain

    Hola @Mauricio P

    Prueba a añadir el tipo de ruta en el constructor del FolderItem. Por ejemplo:

    dim f as new FolderItem("/Applications/Xojo 2016 Release 4.1/xojo.app", FolderItem.PathTypeNative)
    f.Launch

    Javier Rodríguez
    Evangelista Xojo en Español, Desarrollador, Consultor y Formador Xojo
    Autor del libro "Programación Multiplataforma Xojo "
    Autor del plug-in GuancheMOS para Xojo
    Snippery para OS X : editor y gestor de fragmentos… ¡y más!

  3. Michel B

    Feb 15 Pre-Release Testers, Xojo Pro
    Edited 6 weeks ago by Michel B

    Tiene que escapar espacios con \. Y utilizar ShellPath.

    GetFolderItem("/Applications/Xojo\ 2016\ Release\ 4.1/xojo.app", FolderItem.PathTypeShell)

    http://docs.xojo.com/index.php/FolderItem.ShellPath

  4. Javier M

    Feb 16 Pre-Release Testers, Xojo Pro Madrid, Spain

    Hola @Michel B

    El fragmento de código que he publicado en mi anterior respuesta está probado y funciona, sin escapar espacios y usando FolderItem.PathTypeNative (el que está deprecado es el que se utilizaba por omisión, sin asignación directa en el Constructor).

    Javier

  5. Michel B

    Feb 16 Pre-Release Testers, Xojo Pro

    Bueno. my código no le necessita de declarar f. Es mas simplo.

  6. Javier M

    Feb 16 Pre-Release Testers, Xojo Pro Madrid, Spain

    Bueno, en ese caso:

    GetFolderItem("/Applications/Xojo 2016 Release 4.1/xojo.app", FolderItem.PathTypeNative).launch

    No es necesario escapar los caracteres. Más simple aun.

    Javier

  7. Michel B

    Feb 17 Pre-Release Testers, Xojo Pro
    Edited 6 weeks ago by Michel B

    @Javier Meacute;ndez No es necesario escapar los caracteres. Más simple aun.

    Claro. Gracias.

  8. 5 weeks ago

    Hola Javier y Michael

    Disculpas descuide el tema, pero ya lo había resuelto como lo sugiere Javier

    f=GetFolderItem("/Volumes/apps/Modulos/invetario/Builds - invetario.xojo_binary_project/Mac OS X (Cocoa Intel)/invetario.app", FolderItem.PathTypeNative)

    Saludos
    Mauricio

or Sign Up to reply!