Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Problemas con el Ampersand en un String (https://www.clubdelphi.com/foros/showthread.php?t=69037)

cslbcn 22-07-2010 13:16:43

Problemas con el Ampersand en un String
 
Hola. Estoy haciendo en Delphi 7 un menú para lanzar aplicaciones hechas en Delphi. Cuando voy a lanzar una aplicación, uso el componente ShellExecute:

ShellExecute(Form1.Handle, nil,PChar(ruta),nil, nil, SW_SHOWNORMAL);

ruta es una variable del tipo String con el siguiente contenido:

Código Delphi [-]
ruta := 'C:\programas\delphi\mantenimiento.exe ?123456789REAL%';
Siendo 123456789REAL el ID del usuario

De esta forma, no se ejecuta nada, ni si quiera sale error, no pasa nada de nada.
Si hago un ShowMessage(ruta) me sale:

C:\programas\delphi\mantenimiento.exe 123456789REAL%

¡¡¡Me desaparece el & !!!! Imagino que es ese el problema, aunque parece raro que no pete el programa... Como puedo conseguir que no me borre el & ??

Muchas gracias

xEsk 22-07-2010 14:41:08

Hola,

Los parámetros de lanzamiento van "aparte" en la llamada del ShellExecute.

Código Delphi [-]
ruta:='C:\programas\delphi\mantenimiento.exe';
params:='123456789REAL%';

ShellExecute(Form1.Handle, nil,PChar(ruta), PChar(params), nil, SW_SHOWNORMAL);

Más información.

Saludos,
Xesc.

ecfisa 22-07-2010 22:25:06

Hola cslbcn.

Si querés pasar el parámetro como en tu post, podés hacerlo, pero usando WinExec.
Código Delphi [-]
    ruta:= 'C:\programas\delphi\mantenimiento.exe ?123456789REAL%';
    WinExec(PChar(ruta), SW_NORMAL);

Ahora, usando ShellExecute, es como te expuso xEsk.

Saludos.


La franja horaria es GMT +2. Ahora son las 19:45:37.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi