> For the complete documentation index, see [llms.txt](https://doc.velneo.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.velneo.com/38/velneo-vclient/funcionalidades-especificas/accesos-directos-y-vrl.md).

# Accesos directos, VRL y parámetros de inicio

Es posible crear un acceso directo a las [instancias](/38/velneo-vadmin/gestion-de-aplicaciones/instancias.md) de [Velneo vServer](/38/velneo-vserver/que-es-velneo-vserver.md). Para ello debemos crear un acceso directo con el siguiente formato:

`/senda/ejecutable vatp://usuario:contraseña@dominio:puerto/instancia`

Está compuesto en primer lugar por la senda de Velneo vClient (fichero vClient.exe), que necesitaremos para poder lanzar el ejecutable.

La segunda parte se trata de la VRL (Velneo Resource Locator), que está compuesta por el esquema o protocolo (vatp), el usuario y la contraseña separados por dos puntos (:), el dominio o ip del servidor y el puerto, separados por dos puntos (:) y la senda, que es el identificador de la instancia a la que queremos acceder.

{% hint style="warning" %}
En el caso de que el nombre del usuario contenga una @, en el acceso directo tendremos que sustituir ésta por la cadena %40. Ejemplo, si el nombre de usuario es <info@velneo.com> el acceso directo tendremos que escribir info%40velneo.com. Ejemplo:

`"C:\Archivos de programa\Velneo\vClient.exe" "vatp://info%40velneo.com:contraseña@v7cloud3.velneo.com:6001/GESTION"`
{% endhint %}

Por ejemplo, en el sistema operativo Windows se escribiría de la siguiente forma:

`"C:\Archivos de programa\Velneo\vClient.exe" "vatp://usuario:contraseña@v7cloud3.velneo.com:6001/GESTION"`

para conocer el identificador de la instancia usaremos [Velneo vAdmin](/38/velneo-vadmin/que-es-velneo-vadmin.md) haciendo doble clic sobre la definición de instancia:

![](https://content.gitbook.com/content/SSuDG1WIgF9xPUK4NaFS/blobs/IrQS7kmOogtZgkxxlYLJ/res_513.png)

El contenido de este parámetro solamente podrá contener letras mayúsculas, números y guiones bajos \_.

Si queremos que en lugar de acceder directamente al proyecto el sistema pida la contraseña del usuario indicado en el acceso directo escribiremos el carácter \* en el parámetro correspondiente a la contraseña:

`"C:\Archivos de programa\Velneo\vClient.exe" "vatp://usuario:*@v7cloud3.velneo.com:6001/GESTION"`

Si queremos que en lugar de acceder directamente al proyecto el sistema pida el usuario y la contraseña escribiremos el carácter \* en el parámetro correspondiente al usuario y en el parámetro correspondiente a la contraseña:

`"C:\Archivos de programa\Velneo\vClient.exe" "vatp://*:*@v7cloud3.velneo.com:6001/GESTION"`

En el caso de que el usuario o la contraseña incluya caracteres especiales tales como @, \\, etc. éstos no podrán ser escritos directamente en la cadena sino que tendrán que ir codificados en su equivalente html (%CODIGO\_CARACTER).

Ejemplo: si la contraseña del usuario es 123\@45, la especificaríamos así: `123%4045`

## Parámetros de inicio

A continuación explicaremos los distintos parámetros que podemos usar en la ejecución de Velneo vCleint.

### Idioma

Este parámetro permite que el proyecto se ejecute con un idioma concreto, usaremos el parámetro **`/loginLocale`** o **`/llo`** (forma abreviada)

El parámetro del idioma se especificará según la [norma ISO-639-1](http://es.wikipedia.org/wiki/ISO_639-1). Ejemplo, para cargar el idioma español haríamos:

`"C:\Program Files \(x86\)\Velneo\716RC\vClient.exe" /llo="es"`

o

`"C:\Program Files \(x86\)\Velneo\716RC\vClient.exe" /loginLocale="es"`

### Tamaño ventana

Si queremos que la ventana de la aplicación se abra con un tamaño concreto y en unas coordenadas concretas, usaremos el parámetro **`-qwindowgeometry`**. Sintaxis:

**-qwindowgeometry** anchoPixels**x**altoPixel&#x73;**+**&#x65;je&#x58;**+**&#x65;jeY

Ejemplo:

`"C:\Archivos de programa\Velneo\vClient.exe" "vatp://usuario:contraseña@v7cloud3.velneo.com:6001/GESTION" -qwindowgeometry 800x600+ 500+500`

### Ejecutar sin interfaz

Si queremos ejecutar un vClient sin interfaz, usaremos el parámetro **`-platform minimal`**. Ejemplo:

`"C:\Archivos de programa\Velneo\vClient.exe" "vatp://usuario:contraseña@v7cloud3.velneo.com:6001/GESTION" -platform minimal`

Debemos tener en cuenta que esta opción es para la ejecución en sistema operativos sin GUI y que para la impresión de informes (tanto en pdf como en impresora) se requiere acceso a interfaz/GUI, con lo que no podremos realizar impresión de informes ejecutando de este modo.

En Linux, para crear un acceso directo a una instancia, lo que haremos será crear un lanzador en el escritorio, y estableceremos el comando siguiendo la estructura siguiente:

`/rutadeinstalacion/Velneo-vClient/vClient.sh vatp://usuario:contraseña@dominioservidor:puerto/IDINSTANCIA`

### Ejecutar en modo depuración

Si queremos ejecutar el vClient en modo [depuración](/38/velneo-vdevelop/depuracion/monitor-de-vclient.md), usaremos el parámetro **`/debug`**.

Ejemplo:

`"C:\Program Files \Velneo\vClient.exe" /debug`

### Activar el perfilador jerárquico

Con el parámetro **`/profiler`** se activa el *profiler* jerárquico, que mide el tiempo de ejecución de los objetos de la aplicación. Admite opciones, por ejemplo:

`"C:\Program Files\Velneo\vClient.exe" vatps://usuario@servidor:690/MI_INSTANCIA /profiler=mode=timeline,interval=10`

[Ver la tabla de opciones](/38/velneo-vdevelop/depuracion/perfilador-jerarquico-para-vclient-y-vserver.md#tabla-de-opciones).

### Ejecutar con acceso remoto por VNC

Velneo vClient puede arrancar sin ventana en el escritorio y servir su interfaz por VNC, para verlo y manejarlo desde cualquier visor VNC (TigerVNC, RealVNC, TightVNC, Remmina…). Es útil para pruebas automatizadas de interfaz o para tener vClient abierto sin que ocupe el escritorio. Para ello usaremos el parámetro **`-platform vnc`**.

Disponible en Windows, macOS y Linux. El plugin VNC va incluido en los instaladores, así que no hay que instalar nada más.

Sintaxis:

**`-platform vnc:size=anchoPixelsx`**`altoPixels[`**`:port=puerto][:listen=dirección][:mmsize=anchoMilímetrosx`**`altoMilímetros]`

* **size**: tamaño de la pantalla virtual, en píxeles. Si no se indica, es de 1024x768.
* **port**: puerto en el que escucha. Por defecto, 5900 en Windows y Linux y 5901 en macOS, porque en macOS el 5900 lo usa Compartir pantalla.
* **listen**: interfaz de red en la que escucha. Por defecto solo la propia máquina (`127.0.0.1`), así que el visor tiene que ejecutarse en el mismo equipo. Con **listen=any** escucha en todas las interfaces de red, y con una dirección IP concreta, solo en esa. Si el valor no es una dirección IP válida, se ignora y solo escucha en la propia máquina.
* **mmsize**: tamaño físico de la pantalla virtual, en milímetros. Permite ajustar la densidad de la pantalla para que la interfaz se vea con el mismo tamaño que en el escritorio. Por ejemplo, `size=1920x1009:mmsize=508x267` equivale a 96 ppp, la densidad habitual del escritorio de Windows.

Ejemplo:

`"C:\Archivos de programa\Velneo\vClient.exe" "vatps://usuario:contraseña@servidor:puerto/INSTANCIA" -platform vnc:size=1280x900:port=5901`

Y desde el visor VNC nos conectaremos a `127.0.0.1:5901`.

Debemos tener en cuenta que:

* **La conexión VNC no tiene contraseña ni cifrado.** Quien llegue al puerto controla vClient con la sesión abierta. Por eso, por defecto, solo se acepta la conexión desde la propia máquina. Si se usa **listen=any**, el puerto debe quedar protegido por un cortafuegos, una VPN o un túnel SSH.
* En un equipo que comparten varios usuarios (Escritorio remoto, Citrix), «la propia máquina» incluye a todos ellos: cualquiera puede conectarse al puerto de otro. En ese caso no se recomienda este modo.
* Si el puerto ya está ocupado, vClient arranca igualmente pero no se puede ver ni manejar: cada instancia necesita su propio **port**.
* Admite varios visores conectados a la vez, y todos ven y manejan la misma sesión.
* No hay aceleración gráfica: los controles que requieren OpenGL no se muestran. En los formularios QML la interfaz se dibuja por software, y los elementos que usan `layer.effect`, como `MultiEffect` o las sombras del estilo Material, no se muestran.
* El portapapeles se comparte con el visor en los dos sentidos, solo con texto y en el juego de caracteres Latin-1: los caracteres que no caben en él (por ejemplo, el símbolo del euro) se sustituyen por `?`.
* Se admiten acentos, teclas muertas y caracteres especiales del teclado del visor.
* En Windows se usan las fuentes de la carpeta de fuentes de Windows en formato `.ttf` y `.otf`. Las fuentes en `.ttc` (algunas de chino, japonés o coreano) y las instaladas solo para un usuario no se cargan. La variable de entorno `QT_QPA_FONTDIR` permite indicar otra carpeta de fuentes. En macOS se usan las fuentes del sistema.

#### En macOS

Ejemplo:

`/Applications/Velneo/vClient.app/Contents/MacOS/vClient "vatps://usuario:contraseña@servidor:puerto/INSTANCIA" -platform vnc:size=1280x800`

Y desde el visor VNC nos conectaremos a `127.0.0.1:5901`. El visor «Compartir pantalla» de macOS no sirve, porque exige contraseña: hay que usar otro, como TigerVNC.

Además de lo anterior, en macOS debemos tener en cuenta que:

* Los atajos de teclado se pulsan con **Ctrl** en lugar de **⌘** (por ejemplo, Ctrl+C para copiar). La tecla **⌘** del visor no llega como tal a vClient.
* La interfaz se ve con el estilo Fusion de Qt, no con el aspecto nativo de macOS, y el texto sale algo más grande que en una ventana normal. La variable de entorno `QT_FONT_DPI=72` lo iguala.
* Las páginas web y los documentos que abra la aplicación se abren en la pantalla del Mac, fuera del visor.

#### En Linux

Ejemplo, desde la carpeta de instalación de vClient:

`./vClient.sh "vatps://usuario:contraseña@servidor:puerto/INSTANCIA" -platform vnc:size=1280x800`

Y desde el visor VNC nos conectaremos a `127.0.0.1:5900`. No hace falta sesión gráfica: vClient arranca igual en un servidor sin escritorio, y se maneja solo desde el visor. Se usan las fuentes instaladas en el sistema.

### Envío de parámetros a una aplicación

Si queremos ejecutar una aplicación y pasarle una serie de parámetros usaremos el parámetro **/userParam**.

El parámetro puede ser una cadena con cualquier formato, incluido JSON en modo texto.

Ejemplos:

`"param=1"` (cadena)

`{\"key\":\""valor con espacios"\",,\"key2\":'value2'}` (JSON)

Ejemplos:

WIndows

```
C:\Program Files\Velneo\vClient.exe "vatps://user:password@url:puerto/app" /userParam={\""nombre\"":\""Juan Perez\"","\"edad\"":30,"\"ciudad\"":"\"Madrid\""}
```

Linux

```
Velneo-vClient/vClient.sh vatps://user:password@url:puerto/app /userParam={\""nombre\"":\""Juan Perez\"","\"edad\"":30,"\"ciudad\"":"\"Madrid\""}
```

macOS

```
'/Volumes/vClient/vClient.app/Contents/MacOS/vClient vatps://user:password@url:puerto/app' '/userParam={\""nombre\"":\""Juan Perez\"","\"edad\"":30,"\"ciudad\"":"\"Madrid\""}'
```

Todo el parámetro va entre comillas simples: `'/userParam=contenido'`

Si el contenido tiene comillas simples, se ponen del modo siguiente: `"\"`

Para leer los parámetros al ejecutar la aplicación, se ha de hacer uso de la función de fórmulas [getAppUserParam](/38/velneo-vdevelop/proyectos-objetos-y-editores/editores/asistente-de-formulas/funciones-estandar/funciones-api.md#getappuserparam).

{% hint style="info" %}
Al ejecutar en Web no hay acceso directo donde escribir el parámetro: se pasa en la URL con [appArgs](/38/velneo-vclient-web.md#estructura-de-la-url-para-ejecutar-aplicaciones-web).
{% endhint %}
