Ir al contenido


Foto

Como pasar valores o parámetros a otra aplicación


  • Por favor identifícate para responder
11 respuestas en este tema

#1 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 19 noviembre 2008 - 08:52

Me gustaria saber como puedo pasarle a otra aplicacion un valor para que esta la muestre...
  • 0

#2 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 20 noviembre 2008 - 05:56

Necesito mas datos para darte una respuesta:
  • ¿La segunda aplicación la ejecutas desde tu programa o ya esta abierta?
  • ¿El valor es numérico o es un String?

  • 0

#3 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 20 noviembre 2008 - 08:33

Necesito mas datos para darte una respuesta:

  • ¿La segunda aplicación la ejecutas desde tu programa o ya esta abierta?
  • ¿El valor es numérico o es un String?

:D Creo que en el momento de publicar la pregunta me podia mas el cansancio  :p...

La otra aplicacion la llamaria desde mi programa mediante el ShellExecute, el valor con el que quiero hacer la prueba es un String, estuve consultando con la ayuda de Delphi la funcion SendMessage pero con lo poco que entendi no sabría como la otra aplicacion deberia leer los valores  :^)...
  • 0

#4 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 20 noviembre 2008 - 12:35

La función ShellExecute tiene un parámetro llamado "Parameters" donde le puedes indicar los parámetros que se deben pasar a la aplicación que se va a ejecutar. Luego desde la segunda aplicación puedes leer esos parámetros usando la función ParamStr y ParamCount.
  • 0

#5 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 20 noviembre 2008 - 12:57

Hola

La función ShellExecute tiene un parámetro llamado "Parameters" donde le puedes indicar los parámetros que se deben pasar a la aplicación que se va a ejecutar. Luego desde la segunda aplicación puedes leer esos parámetros usando la función ParamStr y ParamCount.

En algún programa he implementado esa función, pero no me acuerdo como lo hice y tampoco encuentro el programa. :D
Podrías darnos un ejemplo sencillo de como pasar esos datos?.
Saludos
  • 0

#6 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 20 noviembre 2008 - 01:49

La función ShellExecute tiene un parámetro llamado "Parameters" donde le puedes indicar los parámetros que se deben pasar a la aplicación que se va a ejecutar. Luego desde la segunda aplicación puedes leer esos parámetros usando la función ParamStr y ParamCount.

Correcto amigo, entiendo lo que dices... planteo el siguiente ejemplo: Quieres abrir Word desde Delphi y que al hacerlo este contenga un mensaje que escribes desde tu aplicación.
Aclaro: Expongo este ejemplo solo como indicacion de lo que quiero hacer, ya que si realmente tuviera que hacer eso usaria el WordApplication  :p :D :D
  • 0

#7 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 21 noviembre 2008 - 06:36

Un momento, si la aplicación a la que queremos enviar los parámetros no es nuestra la cosa cambia. Entonces tendrás que usar el método que hayan pensado los programadores de la misma, si han pensado en alguno.

En cambio si la aplicación es tuya pues simplemente ejecutala con el parámetro "Hola mundo" y en el evento OnCreate pon esto:


delphi
  1. Label1.caption:= ParamStr(1);


  • 0

#8 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 21 noviembre 2008 - 09:04

Un momento, si la aplicación a la que queremos enviar los parámetros no es nuestra la cosa cambia. Entonces tendrás que usar el método que hayan pensado los programadores de la misma, si han pensado en alguno.

He ahí el dilema  ^o|... de todas formas, tomaré un poco de tiempo para hacer algunas pruebas, ya que es claro que en Windows podemos mantener mensajes como si se tratara del "porta papeles"... pero ¿como saber si la otra aplicación lo espera? ó ¿de que manera lo hace? :^)... espero poder postear algún resultado, igual sigo abierto a recomendaciones  :p...

Saludos
  • 0

#9 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 23 noviembre 2008 - 02:12

Hola
Revisando La función ShellExecute y la forma de adquirir el dato realice un ejemplo pero solo me recibe un dato.
Como podria enviar mas de uno.
Me explico con lo que hice:
En el primer programa coloco un edit y un boton:
En el evento del boton:


delphi
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3. dato: PChar;
  4. begin
  5.   Dato:= PChar(Edit1.Text);
  6.   ShellExecute(Form1.Handle, nil, 'C:\Program Files\Borland\Delphi6\Projects\Pasar dato a otro programa\Project2.exe',dato, nil, SW_SHOWNORMAL);
  7. end;


Paso el valor del edit al pchar.

En el otro programa que recibe el dato pongo un edit y en el evento oncreate esto:


delphi
  1. Edit1.Text:= ParamStr(1);



Bueno el dato se recibe, pero solo la primera palabra, si es una frase no.
Como se puede enviar una frase??
Saludos
  • 0

#10 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 25 noviembre 2008 - 09:30

Hola Caral... espero no sea tarde para una respuesta  :D

Si quieres pasar valores entre dos aplicaciones (Creadas por ti), este es un buen ejemplo que te servirá  ;)

http://delphiallimit...ciones-sin.html

  • 0

#11 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 25 noviembre 2008 - 09:55

Hola
Muy interesante amigo.
Muchas gracias.
Saludos
  • 0

#12 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 25 noviembre 2008 - 10:25

De nada...  ojala te sirva de guia  ;)
  • 0




IP.Board spam blocked by CleanTalk.