PDA

Ver la Versión Completa : Ayuda Ejecución de un Programa que este en la misma carpeta [Delphi 7]


Matabarras
07-04-2012, 07:46:23
Bueno, soy Matabarras xD, uso delphi7 . y bueno

Estaba desarrollando un código que lo que hacia era bajar un archivo de nuestro ftp a nuestro ordenador este es el código que hice:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdFTP, IdComponent, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
FTP: TidFTP;
Descargar : String;
Padescargar : String;
begin
FTP := TIdFTP.Create ( nil );
FTP.Username := 'aquimiusuario';
FTP.Password := 'mipass';
FTP.Host := 'mihost';
try
FTP.Connect;
except
raise Exception.Create ( ' Introduce bien los datós del FTP ' ) ;
end;
FTP.ChangeDir('/holoscripter/');
Descargar := 'a.exe';
Padescargar := 'a.exe';
FTP.Get( Descargar , ExtractFilename(Padescargar), False );
FTP.Disconnect;
FTP.Free;
end;
end.

Vale tengo dos problemas, 1 que ponga en lo que ponga si pongo 'C:\a.exe'; en la 1 variable o en la 2 , con el operador = , el archivo sigue bajandose en la misma carpeta donde esta el programa entoncés eso me dificulta a hacer, que si después de bajarselo como hago que se ejecute la cmd sola y se abra el a.exe de la carpeta.

Esa seria una solución

Otra solución seria que me corrigerais para que fuera a un directorio , y me dijerais como llamar a la cmd en vb6 era Call Shell , pero en delphi ni idea, para que la llamara y ejecutara el código de xx ruta.

Gracias de antemano

Casimiro Notevi
07-04-2012, 13:23:34
¿Ese idFtp es de las Indy?, mira algún ejemplo que trae, o haz una búsqueda por los foros, se ha tratado otras veces ese tema.
A ver si lo encuentras...

Matabarras
07-04-2012, 15:46:56
Efectivamente que estoy usando la Libreria Indy es más ya hice un programa que los subiera, con el PUT, ahora estoy haciendo que los baje con el GET, pero aver si me podeis echar una mano, para elegir el directorio.

Y Otra manita, para ejecutar algo en la cmd, desde un boton en delphi.:confused:

Casimiro Notevi
07-04-2012, 16:03:37
Por favor, recuerda leer nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php), gracias por tu colaboración.

Sí, ya se ha entendido que no sabes cómo guardar lo que descargas en un directorio determinado, por eso te comentaba que miraras algún ejemplo que viene con las indy, e incluso ejemplos de código que encontrarás en otros temas similares al que has planteado, ya que no es la primera vez que se pregunta algo así en clubdelphi.

Además te recomiendo que siempre des los máximos detalles posibles, los componentes que usas, por ejemplo, en este caso era importante saberlo.

También te recuerdo que: "preguntas distintas tienen que ir en hilos distintos", no mezclemos las cosas.
Debes poner también títulos descriptivos, por ejemplo, en este caso has titulado: "ayuda ejecución de un programa en la misma carpeta...", cuando realmente lo que estás preguntando es: "¿cómo seleccionar el directorio de descarga para archivos por ftp?", cosa que no tiene nada que ver con el título.

Tampoco pienses que estoy "dándote un tirón de orejas", sólo estoy informándote sobre detalles a tener en cuenta y que todos debemos cumplir para que sea más cómodo luego encontrar información por cualquier usuario que esté buscando algún dato o tenga cualquier duda.

Todo esto que comento viene explicado muy resumidamente en nuestra guía de estilo.

Matabarras
07-04-2012, 16:10:00
Claro, y tambien se nota que no sabes mirar las uses para ver lo que se usa, y fijarte que son de la libreria Indy.

También en més de ayudarme a corregir mi código, me estás diciendo que vaya a buscar ejemplos, yo quiero modificar mi código no el código de otros, y creo que lo que estoy pidiendo tampoco es muy dificil no(?)

Se ve que tu no has leido ni por asomo mi post te citare:


cómo seleccionar el directorio de descarga para archivos por ftp cosa que no tiene nada que ver con el título.

Tu no sabes leer la parte donde dijo entoncés eso me dificulta a hacer, que si después de bajarselo como hago que se ejecute la cmd sola y se abra el a.exe de la carpeta.

Parece que no sabés leer, vaya shit xD, vine a que me ayudaran y me dicen que mire otros códigos guay xD

Casimiro Notevi
07-04-2012, 16:20:32
Tienes razón, no sé leer, tendrá que ayudarte alguien que sepa.
Y ten cuidado, no vayas a mirar el código de otros, te vaya a contagiar su saber ;)

Matabarras
07-04-2012, 16:23:38
Vale , ves a comer chanquetes xD.

Casimiro Notevi
07-04-2012, 16:27:31
Está prohibido pescarlos, casi no quedan.

luisgutierrezb
07-04-2012, 16:55:02
Bueno, el ver código de los demás, sirve mucho para ver que hace y como lo hace, y después aplicarlo en el tuyo, no hay nada mas bonito que ejecutando un código que tu hiciste con cero errores y cero warnings, aunque cabe decir, si compila, lo demás es vanidad jeje, pero bueno, yo no conozco los componentes indy, así que no te puedo proporcionar mucha ayuda, sin embargo me salta algo a la vista, recuerda que la función ExtractFilename obtiene solo el nombre del archivo, así que por mucho que pongas c:\carpeta\carpeta\archivo.yyy con la función quedara archivo.yyy lo cual al bajarlo, dejara el archivo en el directorio por default que es el del programa

Matabarras
07-04-2012, 16:58:58
Gracias Luiz, encima casi tocayo mio.

Mira te cuento, tambien hice uno que subiera practicamente cambie PUT por GET, y use la función ExtractFilename, y podia elegir el directorio de subir del pc ajeno, así que no entiendo porque para bajar no puedo..

Se va arrojando más luz al post, gracias por tu interés , y por tu pequeña ayuda, todo viene bien saberlo.

Matabarras
07-04-2012, 17:29:24
Bueno ya arregle yo solo una parte del código
Para que alguien le pasa igual si se fijan
FTP.Get( Descargar , ExtractFilename(Padescargar), False );
Mi codigo era este, osea esto se descargaba y se extraia en la carpeta entoncés

Lo cambie a este FTP.Get( ExtractFilename (Descargar) , Padescargar, False ); , que primo extraia lo descargo en el directorio que que yo le indicara que es el de la variable pa Descargar :D




Ahora solo queda saber, como ejecutar un programa externo sabiendo la ruta desde un botton en delphi, a traves de la cmd por ejemplo

Casimiro Notevi
07-04-2012, 17:34:58
Por favor, recuerda poner las etiquetas al código, ejemplo:

http://neftali.clubdelphi.com/images/UtilizarTAGs.png


.

Y ya he comentado antes que "preguntas distintas en hilos distintos".
Saludos.

.

Matabarras
07-04-2012, 19:50:23
Por favor, recuerda poner las etiquetas al código, ejemplo:



.

Y ya he comentado antes que "preguntas distintas en hilos distintos".
Saludos.

.


Por Favor, deja de desvirtuar mi Post, troll, te pido que como el Post es mio y la pregunta es mia no comentes más en el, porque solo dices tonterías en mes de ayudar xD

Casimiro Notevi
07-04-2012, 20:33:07
Por favor, intenta seguir las normas (http://www.clubdelphi.com/foros/guiaestilo.php) de nuestros foros, gracias por tu colaboración.

ecfisa
07-04-2012, 20:39:28
Hola Matabarras.

Creo que estas confundido en tu concepto:

Por Favor, deja de desvirtuar mi Post
Nadie ha desvirtuado tu mensaje, solo se te han indicado las reglas que todos seguimos en el foro y que has infringido. Casimiro sólo esta haciendo lo que debe hacer un moderador: Moderar.

troll
Ese calificativo me causa gracia tratándose de Casimiro, él es poseedor de una extensa trayectoria que hace que sea inaplicable.

que como el Post es mio
No es así. El mensaje una vez publicado es público.

la pregunta es mia
Eso es cierto, la pregunta fue formulada por vos.

no comentes más en el
Estos foros son libres y a nadie se le prohibe comentar en ellos exepto que atente contra las normas, ni siquiera a ti.

porque solo dices tonterías en mes de ayudar
Lo único que leí fueron sugerencias a fin de que pudieras obtener mejores respuestas.

Saludos.

Matabarras
07-04-2012, 23:11:01
Dime una sola sugerencia que haya echo ami duda, y si esta incumpliendo las normas, esta diciendo cosas no que vienen al tema, viene aser desvirtuar un post, el post es público evidentemente, pero para quedarme igual que antés, lo llego a pensar y ni me registro ni posteo nada.

Casimiro Notevi
08-04-2012, 00:04:48
Para aliviar tu estado de ánimo, te comparto unas frases escritas por el gran JL Borges, "si tuviera otra vez la vida por delante":

Si pudiese vivir nuevamente mi vida, cometería más errores, no trataría de ser tan perfecto, me relajaría más, sería más tonto de lo que he sido, me tomaría muy pocas cosas en serio, sería más sucio, correría más riesgos, haría más viajes, contemplaría más amaneceres, subiría más montañas, nadaría más ríos, iría a más lugares donde nunca hubiese ido, comería más helados y menos habas, tendría más problemas reales y menos imaginarios.

Yo fui una de esas personas que viven sensata y organizadamente cada minuto de su vida, viví momentos de alegría, pero la vida se hace de instantes, no te pierdas el Ahora. Yo nunca iba a ninguna parte sin termómetro, sin una bolsa de agua caliente, sin un impermeable, si pudiera volver a vivir, viajaría más liviano.

Si pudiera volver a vivir comenzaría a andar descalzo al principio de la primavera y seguiría así hasta concluir el otoño. Daría más vueltas, contemplaría más amaneceres, y jugaría con más niños… si tuviese otra vez la vida por delante.

Jorge Luis Borges

Matabarras
08-04-2012, 00:34:01
Bonita poesia bueno a lo que vamos.

Ya me autosolucione mi segunda duda, para que se ejecutara el archivo que quisiera en este caso el bajado hice despues que desconectara el ftp:
ShellExecute(Handle, 'open', 'c:\aa.exe', nil, nil, SW_SHOWNORMAL) ;
y listo.

Ya pueden cerrar el tema, gracias por su NO ayuda.

Casimiro Notevi
08-04-2012, 01:12:31
Que sea usted muy feliz.

geolife
10-04-2012, 18:04:10
Es realmente encomiable la paciencia y generosidad que muestran en el club! :), y más cuando aparecen nuevos participantes como el "propietario de su post...". ;). Esta claro que aquí además de compartir sus valiosos códigos en programación, enseñan también "buenos códigos de conducta" !



Que sea usted muy feliz.

Matabarras
10-04-2012, 18:08:24
Es verdad, temas felicitando por cumpleaños y haciendo copy paste de noticias de periodicos.

Son valiosos códigos que calidad tiene el Staff de este sitio, se merecen un pin del fari.

Para ti casimiro con todo mi amor
http://www.youtube.com/watch?v=SX8HPD3jIT0&feature=fvst

Matabarras
10-04-2012, 18:14:27
Casimiro el feo que no miro, no me envies advertencias en inglés no las entiendo
Me parece una falta de respeto siendo un foro de español , enviarme alertas en ingles.

Esto me esta provocando daños ami imágen y ami moral, estoy pensando en realizar una denuncia por extorsión abuso humillación y discriminación

Hacia mi persona. Nos vemos en los juzgados